時,視圖並不總是附加在Durandal中,我有一個具有函數viewAttached()
的ViewModel。在Durandal視圖模型中,當viewAttached()調用
根據the docs這應該在視圖附加到DOM後調用。
在我的功能我在視圖中的元素被附加一個jQuery選擇:打印到控制檯
function viewAttached() {
console.log($("#myViewId").length);
}
大多數時候,我準確地得到「1」,但也許10%的我得到0的時間。該視圖尚未實際附加到DOM。
有沒有其他人有這個問題?
是的,這正是我最終做的。幸運的是,因爲代碼是我自己的,所以還有一些其他的jQuery庫在內部使用'$(...)'做事情,總是假設您的元素將位於主DOM上。它的不一致性真的讓我感到困惑。如果它始終處於關閉狀態或始終關閉DOM,則至少會一致:) – CodingWithSpike 2013-05-09 19:19:31
那麼當您嘗試訪問它時,您的父母是否已經在DOM中?根據文件:「這允許控制器或演示者可以直接訪問dom子樹,在它被注入到其父項之後的某個時間點綁定到該dom子樹。」 – RainerAtSpirit 2013-05-09 19:31:17