2013-08-22 16 views
5

我們的應用程序在index.mustache中使用Mustache模板,並且使用Symfony而不是使用Backbone進行初始API調用。這樣用戶就不會在初始頁面加載時盯着空白屏幕。如何將Marionette.ItemView綁定到現有頁面元素,而不是傳入模板?

現在我們如何才能使用Marionette來綁定DOM中的呈現頁面元素(這樣我們就可以操縱數據並添加交互性),而不是傳遞一個新的模板?我們的研究表明,我們需要總是將模板傳遞給Marionette Layout和ItemView,否則我們會得到一個'無模板錯誤'。

是否有el屬性我們可以使用,就像在Backbone中一樣? 另一種選擇是延長Marionette.View,但不建議這樣做。

回答

7

你應該實例化視圖,而不進行渲染。 http://jsfiddle.net/vpetrychuk/PkNTp/

var ItemView = Backbone.Marionette.ItemView.extend({ 
    el : '.content', 
    events : { 
     'click' : 'clickHandler' 
    }, 
    clickHandler : function() { 
     this.$el.append('clickHandler'); 
    } 
}); 

new ItemView(); 
+0

我不知道我做錯了什麼。現在它工作...奇怪。謝謝Vitaliy! –

+6

我會建議一個小小的改變:不要將'el'硬編碼到視圖本身。這會在稍後導致頭痛。相反,將'el'傳遞給構造函數選項:'new ItemView({el:「.content」});' –

+0

@DickickBailey感謝您的建議,是的,這肯定是更加可重用的。 Marionette Btw的粉絲! :) –

相關問題