1
隨着Asp.net MVC綁定錯誤,我有兩個觀點:淘汰賽和JQueryMobile使用模板
第一視點:
<div data-role="listview" data-theme="g" id="subcategorieslistview">
<ul data-bind="template: { name: 'subcategory-template', foreach: subcategories }" id="subcategories">
<script type="text/html" id="subcategory-template">
<li data-role="button" data-icon="arrow-r" data-iconpos="right">
<a data-bind="attr : { title : name, categoryid : categoryId, lazyloaddescriptor : lazyLoadDescriptor}"><label data-bind="text: name"></label></a>
</li>
</script>
</ul>
第二種觀點:
<div data-role="listview" data-theme="g" id="archivecontainerslistview">
<ul data-bind="template: { name: 'archivecontainers-template', foreach: archivecontainers }" id="archivecontainers">
<script type="text/html" id="archivecontainers-template">
<li data-role="button" data-icon="arrow-r" data-iconpos="right">
<span data-bind="text: name"></span>
<span data-bind="text: synopsis" class="ui-li-count"></span>
</li>
</script>
</ul>
當我轉到第一個視圖時,模板工作正常。 然後我轉到第二個視圖,模板再次按預期工作。
然而,當我打後退按鈕回到第一個觀點,我在knockout.js得到一個錯誤:
Uncaught Error: Unable to parse bindings.
Message: ReferenceError: synopsis is not defined;
領域簡介是第二視圖,並通過檢查DOM我看到兩個頁面加載在哪裏,因爲我預計第二個頁面將從DOM中刪除(不知道錯誤是否阻止從DOM中刪除第二個頁面)。
看起來,因爲當第一頁被激活時第二頁在DOM中,即使第二頁未被顯示,綁定似乎也在第二頁中被啓動。不知道這是否正確。
Jquery mobile或KnockOut中是否有任何東西以某種方式從第二頁中刪除綁定,以便我可以避免此錯誤?
那麼,如果'archivecontainers'爲空,那麼綁定不應該被應用。它是空的嗎? – 2012-08-12 19:08:35
當我回到第一個視圖時,ArchiveContainers處於第二個視圖。所以我認爲它仍然會有數據。那麼,如何在回到第一個視圖時清空它? – 2012-08-15 09:29:49
可能的重複[從視圖中取消綁定視圖模型](http://stackoverflow.com/questions/11032129/unbind-view-model-from-view-in-knockout) – 2012-09-14 14:31:34