Backbone 1.1.0视图 - 阅读选项

时间:2013-10-11 18:57:48

标签: backbone.js

Backbone.js 1.1.0的更改日志声明:

  

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

我的问题是我现在该怎么办?之前,我的观点中定期this.var = this.options.var

3 个答案:

答案 0 :(得分:68)

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

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

如果您使用ES6:

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

如果您要为所有Backbone.View保存已通过的选项,则可以覆盖{strong> ncksllvn suggested belowconstructor

答案 1 :(得分:33)

我的团队已经投入了在某些情况下使用this.options,我不想为Backbone.View的每个子类修改initialize方法。加载Backbone后,我们覆盖Backbone.View constructor,类似于McGarnagle的答案,但是无缝集成:

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

答案 2 :(得分:0)

另外值得一看backbone.viewOptions,以获得支持白名单和默认值的视图选项的极简主义实现。