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

したがって、2 つのコレクションで使用されるこのビューを取得しました。問題は、2 つのケースでテンプレート プロパティのみが異なることです。したがって、私はtemplate:プロパティを動的に設定する方法を理解しようとしています。

誰もこれを行う方法の手がかりを持っていますか?

グリーツ、

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 に答える