淘汰忽略指令

时间:2012-02-04 11:42:54

标签: knockout.js

即使在页面上调用了应用绑定,有没有办法让knockout忽略绑定?

例如

<!-- ko with: ignore-->
<span title="City" data-bind="text: city"></span>
etc..
<!-- /ko -->

我在页面中遇到错误,在模型准备好之前将区域包起来会很好。 我不会这样做,但是我有很多关于data-bind指令的观点。

return (new Function("sc", functionBody))(scopes);
uncaught exception: [Exception... "'Error: Unable to parse bindings.
Message: ReferenceError: city is not defined;
knocko...ebug.js (line 195)

1 个答案:

答案 0 :(得分:3)

至于我的应用程序架构引起的问题。我可以提出问题的解决方法

  1. with: undefined不会解析绑定。但是,元素将从DOM中消失,并且永远不会出现,因为您无法重新评估with绑定
  2. 将IsViewModelReady observable添加到全局上下文(窗口)并使用if: IsViewModelReady绑定。准备好绑定时设置window.IsViewModelReady(true)。结帐示例:http://jsfiddle.net/romanych/6Wwux/
  3. 但是我的建议是在第一次渲染所需的所有数据准备就绪时调用ko.applyBindings()。另外我想要注意ko.applyBindings接受第二个参数container,它定义DOM节点以开始扫描data-bind属性。准备好后,您可以将绑定应用于页面的每个部分。请查看此示例:http://jsfiddle.net/romanych/4AjBA/