Backbone 1.1.0 Просмотров - Параметры чтения

В журнал изменений для Backbone.js 1.1.0 указано:

Backbone Views больше не автоматически присоединяет параметры, переданные конструктору как this.options, но вы можете сделать это самостоятельно, если хотите.

Мой вопрос: как я могу это сделать сейчас? ранее, я имел this.var = this.options.var регулярно в своих представлениях.

Ответ 1

Если вы хотите получить доступ к переданным параметрам - просто сохраните их:

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

Если вы используете ES6:

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

Если вы хотите сохранить переданные параметры для всех Backbone.View, вы можете переопределить constructor, например ncksllvn ниже.

Ответ 2

Моя команда уже была инвестирована в использование this.options в определенных случаях, и я не хотел проходить и изменять метод initialize для каждого подкласса Backbone.View. Как только 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);

Ответ 3

Также стоит взглянуть на backbone.viewOptions для минималистской реализации параметров просмотра, которая поддерживает белые листинга и значения по умолчанию.