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
的,你可以覆盖constructor
像ncksllvn 以下建议.
nck*_*lvn 34
我的团队已经投入使用this.options
在某些情况下,我不想通过修改initialize
Backbone.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)