Knockout:如何检查绑定是否已应用于页面区域

时间:2012-01-17 11:49:22

标签: knockout.js

有没有办法检查是否为页面区域调用applyBindings

似乎淘汰赛不喜欢在同一页面上多次调用applyBindings时。

1 个答案:

答案 0 :(得分:60)

Knockout 2.0有两个可用于此目的的功能。 ko.dataForko.contextFor接受一个节点并返回可用于在该范围内绑定的Knockout数据(dataFor)或该范围内的整个绑定上下文(contextFor),其中包括{ {1}},$data$parent$parents

所以,你可以这样做:

$root

以下是一个示例:http://jsfiddle.net/rniemeyer/GaqGY/

但是,在正常情况下,您应该真正在页面上一次性调用var isBound = function(id) { return !!ko.dataFor(document.getElementById(id)); }; 。这取决于你想要完成的事情。请查看此答案,了解有关管理多个视图模型的方法的一些建议:Example of knockoutjs pattern for multi-view applications

通常情况下,您会执行ko.applyBindings,当<div data-bind="with: mySubModel">被填充后,该区域就会出现并受到约束。