3
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;
        }
    });

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

有谁知道如何做到这一点?

问候,

4

2 回答 2

3

应该像这样简单:

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

然后当你调用它时:

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

感谢mu 太短无法更正

于 2012-11-27T15:47:13.893 回答
1

您可以将参数传递到您的初始化方法中,因此您应该能够只传递模板。

例如:

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);
于 2012-11-27T15:50:35.430 回答