2012-07-09 107 views
0

我剛剛遇到了一個很奇怪的問題,我有多個applyBindings()但它們都是針對不同的元素。現在,這一切都用於正常工作,因爲一旦所有資源都被加載(yepnope完全回調),所有事情都會發生,但是現在它基於引發的事件(從我們的內部事件系統)發生,似乎有一個奇怪的錯誤(說視圖模型沒有可觀察到的,但是因爲它看起來不正確)。淘汰賽部分綁定問題

問題是,最後一個綁定似乎因爲某種原因覆蓋了所有其他綁定,所以如果我有4個元素具有唯一的id和4個視圖模型,每個綁定到它們的coresponding元素,所以我期望綁定發生像這樣:

element_a -> view_model_a 
element_b -> view_model_b 
element_c -> view_model_c 
element_d -> view_model_d 

但是由於某些原因,綁定似乎改變時view_model_d勢必使他們都成爲:

element_a -> view_model_d 
element_b -> view_model_d 
element_c -> view_model_d 
element_d -> view_model_d 

正如我所說的這個習慣做工精細,但由於我們轉向一種應用綁定的異步方式它似乎有點破裂,所有綁定的元素都在html和自包含的內容中(即,它們都不是動態注入的,並且不會在DOM中重疊)。另外,在firebug中調試時,viewmodels和元素是正確的,而不是未定義的,這可以解釋爲什麼最後一個調用會覆蓋所有其他元素。

我會嘗試做一個jsfiddle,但由於項目和外部模板和依賴項的複雜性質,它不可能。

所有的事情都指向我做錯了什麼,而不是KnockoutJS,但我不明白爲什麼它以前用得很好,唯一改變的是綁定的順序和時間。

任何有史以來見過的applyBindings滲入其他元素或覆蓋以前的綁定?

回答

0

像往常一樣,答案歸結於我是一個白癡。由於我使用了一個使用templateUrl作爲其選項的外部模板加載器,出於某種原因,它是由於某種原因必須最初工作的templateurl,但是由於現在加載的順序,它正在重新加載相同的頁面,不是所需的模板,這意味着整個頁面綁定將被重新加載:(