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