2011-09-01 32 views
6

我正在使用KnockoutJS,它使用data-bind属性内的json字符串来指示绑定信息。我也喜欢使用HAML。HAML中的多行属性值

该字符串可以很快变得相当长,例如: -

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

的溶液如下(从上方稍微不同)来使用:plain滤波器: -

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

是否有一个更好的方式来使用HAML构造而不是过滤器来做到这一点?

我尝试过使用管道字符,但它似乎不适用于HAML属性。

谢谢!

回答

5

我试过管道符号和它的作品对我来说:

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