我只想了解Backbone.Marionette關於UI元素的觀點背後的決定。 當現有的DOM元素上實例化Marionette.View,像這樣:Marionette中UI元素的可用性。查看
view = new Marionette.ItemView({
el: "#element",
ui : {
whatever : "#whatever"
}
});
我能夠訪問view.$el
,裏面view.initialize
jQuery選擇,到目前爲止,一切順利。 但是,當我嘗試訪問view.ui.whatever
時,我只能訪問選擇器,即字符串「#whatever」而不是實際的$("#whatever")
jquery選擇器。
原因是因爲Marionette.View.bindUIElements()
只在render
而不是在initialize
之前被調用。
我想知道你是否認爲這種行爲是邏輯的,爲什麼?
我只問在視圖附加到現有的el
的情況下,如果視圖是用模板創建的,我確實明白爲什麼綁定在render()
。
這是一個附註 - 如果您單擊返回按鈕返回頁面,您也會遇到這種情況。在使用ui元素之前調用'this.bindUIElements()'解決了這個問題 – Phil 2015-02-18 01:01:35