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中传递参数时中文乱码问题)
Drupal Pager 生成 POST 参数作为 URL 的一部分