35

Backbone.js 1.1.0 への変更ログには次のように記載されています。

バックボーン ビューは、コンストラクターに渡されたオプションを this.options として自動的にアタッチしなくなりましたが、必要に応じて自分でアタッチすることもできます。

私の質問は、どうすれば今それを行うことができますか? 以前は、私はthis.var = this.options.var定期的に私の見解を持っていました。

4

3 に答える 3

68

渡されたオプションにアクセスしたい場合は、保存するだけです:

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

ES6 を使用する場合:

initialize (options = {}) {
  this.options = options;
}

渡されたすべてのオプションを保存したい場合は、以下で提案されているncsllvnのようにBackbone.Viewオーバーライドできます。constructor

于 2013-10-11T19:11:31.177 に答える
34

私のチームはすでに特定のインスタンスでの使用に投資していたので、Backbone.View のすべてのサブクラスのメソッドを調べてthis.options変更したくありませんでした。initializeBackbone が読み込まれるとすぐに、constructorMcGarnagle の回答に似た Backbone.View をオーバーライドしますが、シームレスな統合が行われます。

// Compatibility override - Backbone 1.1 got rid of the 'options' binding
// automatically to views in the constructor - we need to keep that.
Backbone.View = (function(View) {
   return View.extend({
        constructor: function(options) {
            this.options = options || {};
            View.apply(this, arguments);
        }
    });
})(Backbone.View);
于 2013-10-17T15:55:58.890 に答える
0

また、ホワイト リストとデフォルト値をサポートするビュー オプションの最小限の実装については、 backbone.viewOptionsを参照する価値があります。

于 2015-04-08T01:54:33.673 に答える