Backbone 1.1.0视图 - 阅读选项

Joe*_*Joe 35 backbone.js

Backbone.js 1.1.0的更改日志指出:

Backbone Views不再自动附加传递给构造函数的选项作为this.options,但如果您愿意,可以自己执行.

我的问题是我现在该怎么办?以前,我this.var = this.options.var经常在我看来.

Vit*_*huk 68

如果要访问传递的选项 - 只需保存它们:

initialize: function (options) {
  this.options = options || {};
}
Run Code Online (Sandbox Code Playgroud)

如果您使用ES6:

initialize (options = {}) {
  this.options = options;
}
Run Code Online (Sandbox Code Playgroud)

如果你想保存全部通过选项Backbone.View的,你可以覆盖constructorncksllvn 以下建议.


nck*_*lvn 34

我的团队已经投入使用this.options在某些情况下,我不想通过修改initializeBackbone.View的每个子类的方法.加载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);
Run Code Online (Sandbox Code Playgroud)