寻呼机JS参数和Knockout

时间:2013-10-17 14:20:15

标签: javascript jquery json knockout.js pager

我在我的网络应用程序中使用了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' 

据我所知,该变量尚不存在,而且她没有方法。但是如何解决这个错误?

1 个答案:

答案 0 :(得分:1)

如果稍后将interior_id添加到您的viewmodel,那么您可以使用deferEvaluation上的ko.computed选项,以便在访问background属性时仅评估其功能而不是在创建ViewModel时:

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