Pager JS 参数和 Knockout

Posted

技术标签:

【中文标题】Pager JS 参数和 Knockout【英文标题】:Pager JS parameters and Knockout 【发布时间】:2013-10-17 14:20:15 【问题描述】:

我在我的 Web 应用程序中使用 Pager JS、Knockout 和 Jquery。这是代码

function ViewModel()
  var self = this;

  self.interior = ko.observable();
  self.interior.background = ko.computed(function() 
    $.getJSON('/interiors', interior_id:  self.interior_id()).success(function(data) 
      return self.interior.background = data.interior.background_url;
    );
  , this);



$(document).ready(function () 

  pager.Href.hash = "#!/";
  viewModel = new ViewModel();
  pager.extendWithPage(viewModel);
  ko.applyBindings(viewModel);
  pager.start();

);

执行代码时出现以下错误:

Uncaught TypeError: Object #<ViewModel> has no method 'interior_id' 

我知道这个变量还不存在,她也没有方法。但是如何解决这个错误呢?

【问题讨论】:

不要调用不存在的函数?你想做什么? 所以我想做 - 当参数 'interior_id' 改变时,从 JSON 页面获取数据并更新 'interior' 变量。也许你有什么建议? 但是您的视图模型中甚至没有一个名为“interior_id”的属性或可观察对象? 是的。我不。此参数由 PagerJS 在加载 Pager 时在视图模型中创建。 【参考方案1】:

如果稍后将interior_id 添加到您的视图模型中,那么您可以在ko.computed 上使用deferEvaluation 选项,因此它仅在访问background 属性时才评估其功能,而不是当您的ViewModel 被访问时创建:

self.interior.background = ko.computed(function() 
    //do stuff
, this, deferEvaluation: true);

【讨论】:

以上是关于Pager JS 参数和 Knockout的主要内容,如果未能解决你的问题,请参考以下文章

分页技术框架(Pager-taglib)学习三(pager-taglib中传递参数时中文乱码问题)

Tablesorter 和 Pager:如何安装?

Drupal Pager 生成 POST 参数作为 URL 的一部分

MVC如何使用开源分页插件shenniu.pager.js

Web jquery表格组件 JQGrid 的使用 - 8.Pager新增数据查询刷新查看数据

Web jquery表格组件 JQGrid 的使用 - 5.Pager翻页搜索格式化自定义按钮