Backbone.js 1.1.0 への変更ログには次のように記載されています。
バックボーン ビューは、コンストラクターに渡されたオプションを this.options として自動的にアタッチしなくなりましたが、必要に応じて自分でアタッチすることもできます。
私の質問は、どうすれば今それを行うことができますか? 以前は、私はthis.var = this.options.var
定期的に私の見解を持っていました。
Backbone.js 1.1.0 への変更ログには次のように記載されています。
バックボーン ビューは、コンストラクターに渡されたオプションを this.options として自動的にアタッチしなくなりましたが、必要に応じて自分でアタッチすることもできます。
私の質問は、どうすれば今それを行うことができますか? 以前は、私はthis.var = this.options.var
定期的に私の見解を持っていました。
渡されたオプションにアクセスしたい場合は、保存するだけです:
initialize: function (options) {
this.options = options || {};
}
ES6 を使用する場合:
initialize (options = {}) {
this.options = options;
}
渡されたすべてのオプションを保存したい場合は、以下で提案されているncsllvnのようにBackbone.View
オーバーライドできます。constructor
私のチームはすでに特定のインスタンスでの使用に投資していたので、Backbone.View のすべてのサブクラスのメソッドを調べてthis.options
変更したくありませんでした。initialize
Backbone が読み込まれるとすぐに、constructor
McGarnagle の回答に似た 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);
また、ホワイト リストとデフォルト値をサポートするビュー オプションの最小限の実装については、 backbone.viewOptionsを参照する価値があります。