在BackboneJS中动态设置View的属性

时间:2012-11-27 15:42:12

标签: javascript backbone.js

App.Views.WidgetAvailable = Backbone.View.extend({
        tagName: 'li',

        className: 'widget',

        template: template('available_template'),

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

所以我得到了这个由两个集合使用的视图,问题是在这两种情况下只有模板属性不同。因此,我试图弄清楚如何动态设置 template:属性。

有没有人知道如何做到这一点?

格尔茨,

2 个答案:

答案 0 :(得分:3)

应该像这样简单:

 initialize: function(){
                this.template = options.template;
                return this;
            }

然后当你打电话时:

var view = new App.Views.WidgetAvailable( { template : '...' } );

感谢mu is too short进行更正

答案 1 :(得分:1)

您可以将参数传入initialize方法,这样您就可以直接传入模板。

例如:

App.Views.WidgetAvailable = Backbone.View.extend({

   initialize: function (template) {
           this.template = template(template);

    }
      //the rest of your views code
});

var view1 = new App.Views.WidgetAvailable(template1);
var view2 = new App.Views.WidgetAvailable(template2);