更新computed observable中依赖的observable
update depended observable in computed observable
我需要在ajax请求(异步ajax请求)后更新可观察对象值(过滤器),但是计算可观察对象(filterChanged)依赖于这个可观察对象(过滤器),当我在计算中更新可观察对象时,在计算中发生了无限循环?
如何在computed observable中更新dependentobservable ?
function vm(){
var self = this;
self.filter = ko.observable();
self.isOpenFilter = ko.observable(false);
self.result = ko.obseravableArray([]);
self.filterChanged = ko.computed(function(){
var data = {filter:self.filter(),isOpen:self.isOpenFilter()}
$.ajax("/service",data,function(response){
self.result(ko.mappings.fromJS(response.results);
self.filter(response.filter); // infinite loop
self.isOpenFilter(response.isOpen);
});
});
}
我不知道你为什么使用ko.computed
。这样更有意义:
function vm() {
var self = this;
self.filter = ko.observable("default filter");
self.result = ko.observableArray([]);
self.updateFilter = function() {
var filter = self.filter();
$.ajax("/service",
{filter:filter},
function(response){
self.result(ko.mappings.fromJS(response.results));
self.filter(response.filter);
});
};
}
如果你调用updateFilter
从服务器获得更新,它将改变filter
计算属性,如果你的视图绑定到该属性,它应该自动更新。
相关文章:
- 在自定义mean.io包中使用angular-chart.js作为依赖项
- 为什么Airbnb风格指南说不鼓励依赖函数名称推断
- 将依赖外部库的UMD模块与browserfy捆绑在一起
- 如何将本地依赖项添加到npm项目中
- 如何在内联依赖项并将图像转换为dataURI的情况下完全提取网页
- jquery中的复选框依赖项
- 为什么react/redux前端项目在package.json中包含生产依赖项
- 单元测试依赖关系没有被嘲笑
- 依赖<选择>HTML和JavaScript菜单
- FRP 中 EventStreams 的循环依赖关系
- 节点模块依赖关系
- 使用多个依赖项加载只进行一次AJAX调用
- Knockout observable没有观察到其中一个属性
- 限制npm依赖模块's require(隔离)的用法
- AngularJS依赖注入定时问题
- 在Meteor中使用具有依赖关系的NPM包
- Dojo AMD加载程序执行定义具有空/缺失依赖项的回调
- 订阅“;beforeChange”;依赖关系Observable会创建不需要的依赖关系
- Knockout计算的observable在更改其依赖关系时不会更新值
- 更新computed observable中依赖的observable