javascript - Ember.js donde llamar a this._super()
method-overriding (1)
En la documentación enlazada.
init: function() {
var childViews = this.get(''childViews'');
var descriptionView = App.DescriptionView.create();
childViews.pushObject(descriptionView);
this.addButton();
return this._super();
},
_super()
se llama DESPUÉS de que se crea la descriptionView y se inserta en la matriz childViews
.
Esto se debe a que la implementación de superclase init
tomará la matriz childViews y hará cosas con ella. Si llamó a _super
antes de agregar la descriptionView
a la matriz, no se procesaría por lo que haga init
...
Estoy inferiendo, pero esa es la forma en que funciona en Sproutcore, de la que deriva Ember, por lo que creo que probablemente sea lo mismo.
He estado revisando la documentación de Ember y veo una incoherencia en el lugar al que se llama al método _super
al anular init
.
Este es el más común y es lo que he estado usando hasta ahora
var Foo = Em.Object.extend({
init: function(){
this._super();
// ... my stuff ...
}
});
anoche estaba leyendo esto y vi un ejemplo haciendo esto
var Bar = Em.Object.extend({
init: function(){
// ... my stuff ...
return this._super();
}
});
En realidad, era un Ember.ContainerView
en el fragmento de código.
¿Alguien puede explicar esto? Mi código OCD está funcionando y no puedo seguir adelante hasta que lo sepa.