javascript ember.js method-overriding

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.