2011-09-01 2 views
6

J'utilise KnockoutJS qui utilise une chaîne json dans l'attribut data-bind pour indiquer des informations de liaison. J'aime aussi utiliser HAML.Valeurs d'attributs multilignes dans HAML

Cette chaîne peut rapidement devenir assez longue, par exemple: -

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

Une solution est d'utiliser le filtre :plain comme suit (légèrement différente): -

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

est-il une façon plus simple de faire cela en utilisant des constructions HAML au lieu du filtre?

J'ai essayé d'utiliser le caractère de tuyau, mais cela ne semble pas fonctionner pour les attributs HAML.

Merci!

Répondre

5

J'ai essayé la notation pipe et ça marche pour moi:

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

Vous pouvez essayer ce post sur KnockoutJS and Unobtrusive JavaScript

+0

Pourquoi le vote vers le bas? Je pensais que c'était un lien tout à fait pertinent à une façon plus simple de travailler avec Knockout. – Axe

Questions connexes