2012-06-14 20 views
7

No he creado una aplicación todavía, pero estoy confundido por la documentación en bind-attr. Se dice que usted puede hacer algo como:¿Cómo funciona bind-attr en ember.js?

App.LogoView = Ember.View.extend({ 
    logoUrl: 'http://www.mycorp.com/images/logo.png' 
}); 

Con una plantilla:

<div id="logo"> 
    <img {{bind-attr =logoUrl}} alt="Logo" /> 
</div> 

Para producir:

<div id="logo"> 
    <img src="http://www.mycorp.com/images/logo.png" alt="Logo" /> 
</div> 

y de manera similar:

App.AlertView = Ember.View.extend({ 
    priority: "p4", 
    isUrgent: true 
}); 

Con una plantilla:

<div {{bind-attr =priority}}> 
    Warning! 
</div> 

Para producir:

<div class="p4"> 
    Warning! 
</div> 

¿Cómo sabe Ember era el atributo src en el primer ejemplo y un atributo class en el segundo ejemplo? A menos que me falta algo aquí, esto no parece que sea realmente posible.

Respuesta

14

La documentación parece estar equivocada. Ejecutar el código que se enumeran en la documentación, me sale el siguiente error:

Uncaught Error: Parse error on line 4: 
... <img {{bind-attr =logoUrl}} alt="Lo 
-----------------------^ 
Expecting 'CLOSE', 'STRING', 'INTEGER', 'BOOLEAN', 'ID', 'SEP' 

ejecutar el código como lo haría esperar que se vea funciona bien. Es necesario especificar el atributo en cuestión:

<div id="logo"> 
    <img {{bind-attr src=logoUrl}} alt="Logo"> 
</div> 

Aquí hay una working example (quitar el nombre del atributo y buscar el error en la consola).

+0

OH! sí, eso tendría mucho más sentido. Me pregunto a quién notifico sobre errores de documentación. – brad

+0

Puede probar la [página de problemas de GitHub] (https://github.com/emberjs/ember.js/issues). –

+2

La documentación fuente ya ha sido arreglada. El sitio web simplemente no se ha actualizado aún. –