0

我有一个从服务器(AJAX + JSON)获取的项目列表,并过滤了这些项目的状态来过滤列表。我希望在更改过滤器值后立即更新列表(发布新的 Ajax 请求)。请帮忙

  <select data-bind="options: statuses, value: selectedStatus">
  ...
 <table>
   <tbody data-bind="foreach: items">
   ...
   </tbody>
 </table>

 function Model() {
      var self = this;
      self.items =  ko.observable();
      self.statuses = ko.observable();
      self.selectedStatus = ko.observable();
 }

更新:其中一种方法是订阅 selectedStatus 模型内部的更改,如下所示:

self.SelectedStatus.subscribe(function () {
            $.getJSON(...)
});

这是最好的方法吗?

4

2 回答 2

1

一种可能的方法是使用Computed Observables

简短的例子

因此,您可以在所选值更改时更新您的项目。

于 2012-05-10T20:17:41.633 回答
1

orgonaize 更新的另一种方法 - 只需创建一个可计算的触发器,该触发器将调用将更新列表的函数

查看示例

But I'm not sure that this is a best way.. I think Subscribe is most simple way, but dont forgot about loker for ajax request!

于 2012-05-11T07:54:35.843 回答