如何将Marionette.ItemView绑定到现有的页面元素,而不是传入模板?

Elm*_*mov 5 backbone.js backbone-views marionette

我们的应用程序在index.mustache中使用Mustache模板,并使用Symfony进行初始API调用,而不是使用Backbone.这样用户就不会在初始页面加载时盯着空白屏幕.

现在我们如何使用Marionette绑定到DOM中的渲染页面元素(这样我们可以操纵数据并添加交互性),而不是传递新模板?

就我们的研究表明,我们需要始终将模板传递给Marionette Layout和ItemView,否则我们会得到"无模板错误".

是否有我们可以使用的el属性,就像在Backbone中一样?另一种选择是扩展Marionette.View,但不建议这样做.

Vit*_*huk 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();
Run Code Online (Sandbox Code Playgroud)

  • 我建议做一个小改动:不要将`el`硬编码到视图本身.这会引起头痛.相反,将`el`传递给构造函数选项:`new ItemView({el:".content"}};` (6认同)