我已經建立了一個頁面,用於淘汰由於過多的東西,它的工作令人驚訝。如何從整個圓頂刪除knockoutjs綁定
我的問題出現在當導航發生: 的網頁加載 - 偉大工程 用戶導航離開 - 偉大工程 用戶按下後退按鈕 - 原來分頁
在我看來,一旦網頁被返回給使用原始綁定的後退按鈕仍然存在,然後頁面將其數據下載到一個調用ko.applyBinding,導致綁定然後應用兩次打破頁面。
如何刪除原始綁定,並且需要將頁面綁定到新下載的數據,而不是導航前可用的數據。
任何幫助將不勝感激。
我已經建立了一個頁面,用於淘汰由於過多的東西,它的工作令人驚訝。如何從整個圓頂刪除knockoutjs綁定
我的問題出現在當導航發生: 的網頁加載 - 偉大工程 用戶導航離開 - 偉大工程 用戶按下後退按鈕 - 原來分頁
在我看來,一旦網頁被返回給使用原始綁定的後退按鈕仍然存在,然後頁面將其數據下載到一個調用ko.applyBinding,導致綁定然後應用兩次打破頁面。
如何刪除原始綁定,並且需要將頁面綁定到新下載的數據,而不是導航前可用的數據。
任何幫助將不勝感激。
這裏有一個想法來自:https://stackoverflow.com/a/13459885/989516
ko.unapplyBindings = function ($node, remove) {
// unbind events
$node.find("*").each(function() {
$(this).unbind();
});
// Remove KO subscriptions and references
if (remove) {
ko.removeNode($node[0]);
} else {
ko.cleanNode($node[0]);
}
};
我確實遇到過這樣的代碼並嘗試一下,但還沒有能夠讓它正常工作。繼續拋出「Uncaught TypeError:Object#
可能是因爲它應該是一個jQuery包裝節點。這就是find()方法的來源。所以也許嘗試調用像ko.unapplyBindings($('#container'),true),其中'容器'是一些外部元素的內容正在被替換的id。或ko.unapplyBindings($(document),true) – 2013-04-05 16:16:05
好的提示,它似乎確實有效,但主要問題仍在發生。 – QBM5 2013-04-05 16:21:28
凡在你的代碼,你將你的綁定? '$(function(){})//準備好jquery'或者只是在頁面底部的腳本標籤中等? – Joe 2013-04-05 14:50:37
是的我正在使用jquery $(function(){}); – QBM5 2013-04-05 14:53:46