2012-02-14 12 views
17

Esto es probablemente más allá fácil, pero estoy teniendo un tiempo difícil de averiguar cómo acceder a las propiedades de puntos de vista de los padres:Cómo obtener la propiedad de la Vista principal en Ember?

App.ParentView = Ember.View.extend({ 
    foo: 'bar', 

    child_view: Ember.View.extend({ 

    init: function(){ 
     // get the value of App.ParentView.foo 
     // ??? 
    } 
    }) 

}); 
+0

Tenga en cuenta que en el hombre y los casos que acceden a la vista principal son un signo de olor a código. Sin embargo, es difícil decir más sin conocer los detalles aquí. –

Respuesta

30

para obtener la vista: this.get('parentView')

Para obtener el valor de foo this.get('parentView.foo')

+1

Dada una situación en la que desea acceder a la vista principal en las barras de herramientas, puede usar '{{view.parentView.foo}}'. es decir: '{{#view Wrapper}}

{{view.parentView.foo}}
{{/ view}}' – chuckg

+2

¡Newbies heads up! El código de arriba aquí dice App.parentView que es engañoso. Siempre debe obtener ("parentView") independientemente del nombre que le haya dado a su vista. – Nico

+0

Gracias por esto. Solo me ahorró mucho tiempo. – DexterW

3

Tom es correcto. También creé un violín de JS para demostrar esto y también ilustrar la contentView propiedad especial, que puede ser útil en este tipo de situación: http://jsfiddle.net/rSLQK/2/

4

En Ember antes 1.0.pre también se podría utilizar getPath método, en lugar de cadenas de get(), para obtener más sucinta (y generalmente más seguras) código:

this.getPath("parentView.foo"); 

Lo bueno de Ember 1.0.pre es que get() método que ahora admite rutas de acceso, para que pueda escribir

this.get("parentView.foo"); 
Cuestiones relacionadas