web-dev-qa-db-fra.com

Backbone 1.1.0 Views - Options de lecture

Le journal des modifications dans Backbone.js 1.1.0 indique:

Les vues de circuit principal n'attachent plus automatiquement les options transmises au constructeur sous la forme this.options, mais vous pouvez le faire vous-même si vous préférez.

Ma question est comment puis-je le faire maintenant? Auparavant, j'avais this.var = this.options.var régulièrement dans mes vues.

35
Joe

Si vous souhaitez accéder aux options passées, sauvegardez-les simplement:

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

Si vous utilisez ES6:

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

Si vous souhaitez enregistrer les options passées pour tous les Backbone.View, vous pouvez remplacer constructor comme ncksllvnsuggéré ci-dessous .

68
Vitalii Petrychuk

Mon équipe avait déjà investi dans l'utilisation de this.options dans certains cas et je ne voulais pas modifier la méthode initialize pour chaque sous-classe de Backbone.View. Dès que Backbone est chargé, nous remplaçons le Backbone.View constructor similaire à la réponse de McGarnagle, mais avec une intégration transparente:

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

Cela vaut également la peine de jeter un coup d'œil à backbone.viewOptions pour une implémentation minimaliste des options d'affichage prenant en charge les listes blanches et les valeurs par défaut.

0
Brave Dave