Javascript 击倒js应用绑定
在这里击倒是一件新鲜事 我从一个web服务获取JSON数据,该服务获取所有经销商。我希望将其绑定到GUI,然后能够基于所选区域过滤阵列,而无需从web服务获取新数据并应用。现在,我似乎需要jquery.getJSON函数中的过滤功能和ko.applyBinding功能(在separet函数中,而不是像示例中那样在page.ready中)。我不希望这样,因为这意味着每次用户想要过滤数组时,我都必须从web服务获取新数据并运行applybinding 这段代码非常简单,但我希望您能理解这一点:Javascript 击倒js应用绑定,javascript,knockout.js,Javascript,Knockout.js,在这里击倒是一件新鲜事 我从一个web服务获取JSON数据,该服务获取所有经销商。我希望将其绑定到GUI,然后能够基于所选区域过滤阵列,而无需从web服务获取新数据并应用。现在,我似乎需要jquery.getJSON函数中的过滤功能和ko.applyBinding功能(在separet函数中,而不是像示例中那样在page.ready中)。我不希望这样,因为这意味着每次用户想要过滤数组时,我都必须从web服务获取新数据并运行applybinding 这段代码非常简单,但我希望您能理解这一点: fu
function GridModel() {
var self = this;
self.Dealers = ko.observableArray();
}
var Grid_Model;
$(document).ready(function () {
Grid_Model = new GridModel();
ko.applyBindings(Grid_Model); // If this line is here, no data is bound to the GUI at all
jQuery.getJSON("URL", function (data) {
Grid_Model.Dealers = ko.mapping.fromJS(data);
// If I put the filter functionality here, it works
// If I put ko.applyBindings(Grid_Model); here, it works.
});
});
function filterDealers(string region) {
Grid_Model.Dealers = ko.utils.arrayFilter(Grid_Model.Dealers(), function(dealer) {
return dealer.RegionName() == region;
});
}
您不需要每次都调用应用绑定。将代码更改为如下所示
jQuery.getJSON("URL", function (data) {
var dealerArray = ko.mapping.fromJS(data);
// Filter the dealer array here
Grid_Model.Dealers(filteredArray);
});