2012-02-04 110 views
0

有没有办法让淘汰赛忽略绑定,即使已经在页面上调用了绑定?淘汰赛忽略指令

例如

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

我得到的页面错误,这将是很好的包装领域,直到模型已准备就绪。 我不会这样做,但我有很多数据绑定指令的地方。

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) 

回答

3

至于你我的问题是由应用程序的体系结构引起的。我可以提出解决问题的方法

  1. with: undefined不会解析绑定。但是元素将从DOM中消失,并且将永远不会显示它们,因为您无法重新评估绑定with
  2. 将IsViewModelReady添加到全局上下文(窗口)并使用if: IsViewModelReady绑定。当您准备好绑定时,请设置window.IsViewModelReady(true)。结帐示例:http://jsfiddle.net/romanych/6Wwux/

但是,我的建议是在第一次渲染所需的全部数据准备就绪时拨打ko.applyBindings()。另外我想注意的是ko.applyBindings接受第二个参数container,它定义了DOM节点开始扫描data-bind属性。准备就绪后,您可以将绑定应用到页面的每个部分。检查此示例:​​

+0

谢谢,我想我会使用if绑定。谢谢 - 帮了很多。 – Chin 2012-02-04 23:40:57

+1

另请参阅[Skip Binding](http://www.knockmeout.net/2012/05/quick-tip-skip-binding.html) – 2013-02-04 17:14:36