Jquery js:如何根据用户更改的筛选值更新列表(对服务器的调用)

Jquery js:如何根据用户更改的筛选值更新列表(对服务器的调用),jquery,knockout.js,ko.observablearray,Jquery,Knockout.js,Ko.observablearray,我有一个从服务器获取的项目列表(AJAX+JSON),以及过滤列表的这些项目的状态过滤器。我希望在过滤器值更改后立即更新列表(发布新的Ajax请求)。请帮忙 <select data-bind="options: statuses, value: selectedStatus"> ... <table> <tbody data-bind="foreach: items"> ... </tbody> </table

我有一个从服务器获取的项目列表(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();
 }

这是最好的方法吗?

可能的方法之一是使用


所以,当所选值更改时,您可以更新您的项目。

组织更新的另一种方法-只需创建一个触发器computed observable,它将调用更新列表的函数


但我不确定这是不是最好的方式。。我认为订阅是最简单的方式,但不要忘记loker for ajax请求

我不明白这个问题。如果您使用的是AJAX,为什么不更新回调中的值呢?问题是如何运行服务器回调,我不想使用的是经典的onchange事件,我想在Observables的帮助下根据淘汰概念完成它。这是一个数据过滤器?正确,是一个过滤器,由于它的值发生了变化,我需要调用服务器来刷新项目集合,实际上并没有“官方”方法来处理您想要的内容。正如您已经知道的,您可以使用事件绑定绑定到变更事件,也可以使用如您所示的订阅。选一个,或者两个都试试,看看你喜欢哪个。干得好!感谢您为Meth创建的示例唯一的问题是您的示例没有从服务器请求项目,我需要Ajax请求,因此我无法立即返回项目,也无法在计算属性的$.getJSON回调函数中返回项目请参阅我的下一篇文章和新示例:)
self.SelectedStatus.subscribe(function () {
            $.getJSON(...)
});