我在啓用淘汰賽庫中啓用延期更新時遇到問題。我已經實現了Jquery數據表作爲一個組件,當瀏覽到具有此組件的視圖時,我可以看到按順序調用以下方法。 Getview>啓動>附加Durandal JS淘汰賽延期更新
一切正常
但是,如果我按F5刷新頁面,而不是從它打破了另一個頁面瀏覽到它和下面的方法被稱爲
Getview>啓動>附加> GetView>激活>附加>分離>分離(不知道爲什麼它最終調用兩次) 它破裂,UI上沒有任何表格顯示,因爲它不能渲染我所知道的,我認爲它與Durandal轉換有關,並且在瀏覽頁面和刷新頁面時有所不同。
這是一個很小的類,複製這個問題對我來說,注意我沒有這個組件我想使用getView方法在一些動態HTML通過從JQueryDT
HTML文件我創建了一個快速樣品項目需要最低限度的複製問題。 https://bitbucket.org/dchosking1988/deferred-update-example
如果你拉動它並運行它,你會發現當你刷新頁面時,「hello world」會消失,但如果你在標籤頁之間導航,它將不會消失。
一般步驟i用於複製問題是
1)下載示例項目
2)添加測試組件(參見上文示例文件回購)
3)使延遲更新
4)禁止視圖緩存
4)嘗試構成的組件的新實例
名編輯給更多信息
*這不是一個jQuery的數據表的問題,它被複制與以下
所以你沒有下載gitRepo,這是我的代碼可以按照以上步驟在示例項目中複製問題。
define([],
function() {
var test = function() {
var self = this;
var defaultViewHtml = '<div> <h1>Hello World</h1></div>';
var currentView = null;
self.getView = function() {
console.log('GetView');
if (!currentView) {
currentView = $(defaultViewHtml)[0];
}
return currentView;
};
self.activate = function (activateOptions) {
console.log('Activate');
};
self.attached = function (view, parent, settings) {
console.log('Attatched');
};
self.detached = function (view, parent) {
console.log('Detatched');
};
};
return test;
});
然後這個HTML添加到index.html的,也不要忘記在
<div class="whiteRow">
<div class="container">
<div class="row">
<div class="col-md-12">
<div data-bind="compose: { model: test }"></div>
</div>
</div>
</div>
</div>