2012-02-04 137 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