0

我正在开发 Backbone 中的应用程序,并且我有多个具有相同渲染功能的视图:

render: function(){
    this.$el.html(this.template(this.model.toJSON()));
    return this;
}

如何在多个视图中重用此功能,以便遵循旧的 DRY 方式?

4

2 回答 2

1

您可以使用此处指定的混合模式:Proper way of doing view mixins in Backbone

var renderable = {
    render: function(){
        this.$el.html(this.template(this.model.toJSON()));
        return this;
    }
};

var view = Backbone.View.extend({
//other methods
});

_.extend(view.prototype, renderable);

var myView = new view();
myView.render();
于 2013-09-24T19:27:54.413 回答
0

扩展另一个视图

var BeefedupView = Backbone.View.extend({
    render: function () {
        this.$el.html(this.template(this.model.toJSON()));
        return this;
    }
});

var myView = BeefedupView.extend({
    // Do super cool stuff here...
});
于 2013-09-24T19:26:40.650 回答