2011-09-01 10 views
6

Estoy usando KnockoutJS que usa una cadena json dentro del atributo data-bind para indicar información de enlace. También me gusta usar HAML.Valores de atributo de varias líneas en HAML

Esta cadena puede rápidamente llegar a ser bastante largo, por ejemplo: -

%ul#task-list.unstyled{"data-bind" => "template: { name : 'taskHierarchy', foreach : contexts.children(), afterAdd: function(elem) { $(elem).hide().slideDown() } }"} 

Una solución es utilizar el filtro :plain como sigue (ligeramente diferente de la anterior): -

:plain 
    <div data-bind = "template: { 
    name: 'twoLineResourceTemplate', 
    foreach: resources, 
    afterAdd: function(elem) { $(elem).hide().slideDown() } 
    }"> 
    </div> 

¿Hay una manera más clara de hacer esto utilizando construcciones HAML en lugar del filtro?

He intentado utilizar el carácter de tubería, pero parece que no funciona para los atributos HAML.

Gracias!

Respuesta

5

Probé la notación de la tubería y que funciona para mí:

%ul#task-list.unstyled{"data-bind" => | 
"template: { "      + | 
"name : 'taskHierarchy',"   + | 
"foreach : contexts.children()," + | 
"afterAdd: function(elem) {"  + | 
"$(elem).hide().slideDown()"  + | 
"} }"}        | 
-1

usted podría intentar este mensaje el KnockoutJS and Unobtrusive JavaScript

+0

Por qué el voto hacia abajo? Pensé que este era un enlace completamente relevante para una forma más ordenada de trabajar con Knockout. – Axe

Cuestiones relacionadas