2013-09-24 97 views
2

我正在構建我的第一個Backbone Marionette應用程序,但我很困惑如何將可重用UI添加到我的視圖模板,其中這些UI元素具有JavaScript交互。Backbone Marionette:可重複使用的UI元素

我已經構建了一些UI元素,如下面顯示的輸入元素。此輸入元素可以通過JavaScript進行交互,例如通過單擊向上/向下箭頭更改輸入值。

UI Element

這些UI元素應該在多個視圖被一次又一次地重複使用,並且可以有包含的任何給定的視圖內的這些UI元素的許多實例。下面顯示了一個包含多個UI元素的視圖模型。

Group of UI Elements

針對此視圖模型可能是這樣的,我想有我這種觀點的模型交互UI元素的JavaScript的互動。換句話說,UI元素上的JavaScript交互必須能夠將事件傳遞給顯示UI元素的視圖模型。

var fontStyles = Backbone.Model.extend({ 
    defaults: { 
     fontFamily: "Helvetica Neue", 
     fontWeight: "Regular", 
     color: "rbg(1,197,255)" 
     ... 
    } 
}); 

我的問題

對於一個結構合理的骨幹木偶應用,在那裏我會定義這些可重用的UI元素和它們的JavaScript交互方法中,這樣我可以在整個重用他們的方式我所有的觀點/模塊?

另一個問題是,是否可以在模板文件中將這些UI元素的HTML編寫一次,然後在視圖的下劃線模板中重複使用該單個UI模板文件?或者是否必須在每個視圖的模板中重複使用我的UI元素的HTML?

謝謝你的幫助,如果我的問題不清楚,請告訴我。

回答

0

你應該創建這個元素作爲Marionette.ItemView的擴展
每個項目視圖應該被創建並放置到區域內的佈局要使用它們
當然,因爲它是ItemView控件包含模板:some_template, 或者,如果他們Marionette.Layout擴展本身也含有地區

所以,爲你的圖片 小圖片是ItemView控件 大畫面佈局,其中包含區域的數量,每個區域包含小部件,它是ItemView控件。

佈局接收模型:some_model初始化(佈局是ItemView的擴展)

+0

感謝您的答案Tigra。我發現另一種選擇只是將我的UI交互寫入單個文件中,並在我的RequireJS定義中填充。然後,在我的Backbone視圖中,我只是在輸入字段上監聽值更改事件,而不是監聽JavaScript交互。 –

相關問題