我有一个具有对象层次结构的 Knockout 应用程序。如果我想访问 HTML 标记中对象的更深层次,我会使用类似的东西:
data-bind="text: property1().property2().property3()"
Run Code Online (Sandbox Code Playgroud)
我想在纯 Javascript 中订阅相同的目标,即在当前绑定的对象上的 property3 更改时执行函数,或者每当 property3 下的层次结构更改时执行函数。换句话说,我想做类似的事情:
myviewmodel.deepSubscribe("property1().property2().property3()", function() { .... });
Run Code Online (Sandbox Code Playgroud)
我如何在淘汰赛中解决这个问题?
最好使用computed淘汰赛的功能。
您可以声明:
var computedProp = ko.computed(function(){
return property1().property2().property3();
}
Run Code Online (Sandbox Code Playgroud)
然后你可以像这样绑定:
data-bind="text: computedProp"
Run Code Online (Sandbox Code Playgroud)
您可以像这样订阅它:
computedProp.subscribe(function() { .... });
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2074 次 |
| 最近记录: |