decir que estoy definiendo vistas anidadas, al igual que (code example on JSFiddle):Ember.js: ¿Cómo acceder a las instancias vista anidada
App.ParentView = Ember.View.extend({
ChildView: Ember.View.extend({ ... }),
method: function() {
this.get('ChildView') // => this is the class, not the instance :(
}
});
{{#view App.ParentView}}
{{#view ChildView}}
...
{{/view}}
{{/view}}
me gustaría evitar la unión de una gran cantidad de atributos entre la vista de los padres y la vista de niño Más bien, me gustaría hacer algo como this.getPath('ChildView.foo')
. Pero this.get('ChildView')
devuelve la clase que creé con Ember.View.extend, no la instancia, por lo que no puedo acceder a los atributos.
¿Existe alguna manera canónica de acceder a la instancia actual de una vista secundaria desde dentro de un método de la vista principal?
Me parece que el enlace 'viewName' es lo que los autores de ember.js pretendían que usara,' _childViews' parece IMO privada. Y dar a la vista una identificación no ayuda si tiene varias instancias de la misma. –
Gracias, esto es muy útil. He adoptado una convención de llamar a mis clases 'ChildView' (en mayúscula) y usar' viewName = "childView" '(sin mayúscula) para los nombres de instancia. Esto lo hace razonablemente no confuso. –
@Bradley, en su ejemplo, ¿hay alguna diferencia entre '' 'getPath''' y' '' get''', si '' 'this''' se refiere a la vista padre? –