2013-05-30 95 views
3

如果我試試這個:淘汰賽:爲什麼註釋標籤無法正常工作?

<!-- ko foreach: data.cards --> 
<div> 
    SHOULD SEE MULTIPLE TIMES BUT ONLY SEE ONCE 
</div> 
<!-- /ko --> 

我只是得到一個DIV沒有數據。如果我這樣做:

<div data-bind="foreach: data.cards"> 
    THIS IS SEEN MULTIPLE TIMES 
</div> 

它按預期工作 - 與數據的多個div。爲什麼第一種方法不起作用?這是特別奇怪的,因爲在另一頁中,這個結構工作正常。

這裏是我的手錶控制檯在Chrome中看到:

enter image description here

這裏就是我久違的視圖中的VM:

var vm = { 
    activate: activate, 
    data: observableData, 
    refresh: refresh, 
}; 

我改變的唯一事情是移動從div的foreach到評論,並停止工作。

更新:如果我刪除<!-- /ko -->結束標記,我不會收到錯誤,當我相信我應該得到Cannot find closing comment tag to match。瀏覽器不能識別註釋標記在所有:/

+0

控制檯中的任何錯誤? – woz

+0

發佈的代碼應該可以工作。您的實際代碼中有其他內容會導致您的問題。你有任何控制檯錯誤嗎?你能重現這個問題嗎?也許在JSFiddle中? – nemesv

+0

不,我可以在兩種情況下通過鍍鉻手錶控制檯訪問data.cards – RobVious

回答

1

我們必須與我們的項目相同的問題,因爲我們壓縮響應,並刪除註釋。爲了避免使用<div><span>您的foreach一個解決方法是定義自己的<ko>元素。如果你這樣做,你將需要包括以下腳本IE8和更低的支持:

<!--[if lt IE 9]> 
<script> 
    document.createElement("ko"); 
</script> 
<![endif]-->