Jquery js:如何根据用户更改的筛选值更新列表(对服务器的调用)
我有一个从服务器获取的项目列表(AJAX+JSON),以及过滤列表的这些项目的状态过滤器。我希望在过滤器值更改后立即更新列表(发布新的Ajax请求)。请帮忙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
<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(...)
});