sWW*_*sWW 9 javascript knockout.js
我有一个问题,在创建后为可观察者添加一个敲除扩展器.在下面的示例中,扩展器在foo每次值按预期更改时运行,但在第一次调用时仅运行一次bar.
var viewModel = function(){
var self = this;
self.foo = ko.observable(1).extend({ numeric: 1 });
self.bar = ko.observable(1);
self.bar.extend({ numeric: 1 });
};
Run Code Online (Sandbox Code Playgroud)
本质上,我正在映射一个大型JSON对象,并希望在某些属性发生映射后添加扩展器.有一个简单的方法吗?
下面是一个显示问题的jsfiddle:
你遇到的问题是扩展器正在创建一个新的observable(基于它正在扩展的observable).并且在你的第二次电话会议中没有使用新的可观察信息extend.
要解决此问题(不更改扩展程序的代码),您可以将响应从调用分配extend 到它所调用的同一属性中.
换句话说,self.bar =在最后一行前添加以便:
self.bar = self.bar.extend({ numeric: 1 });
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2481 次 |
| 最近记录: |