9

我有一个这样的车把模板:

<script type="text/x-handlebars" data-template-name="sections">
  {{#each section in controller}}
    {{#linkTo "section" section}} {{ section.label }} {{/linkTo}}
  {{/each}}
</script>

一切正常。我的模型对象如下所示:

App.Section = DS.Model.extend({
 sectionDetail: DS.attr('number'),
 label: DS.attr('string'),
 cssClass: DS.attr('string')
});

我想使用助手"cssClass"内部的属性。"#linkTo"现在,如何(从语法上)完成?

我试过这个,但这显然不起作用,因为 using{{section.cssClass}}不会呈现的值section.cssClass而是裸字符串"{{section.cssClass}}"

<script type="text/x-handlebars" data-template-name="sections">
  {{#each section in controller}}
    {{#linkTo "section" section class="{{section.cssClass}}"}} {{ section.label }} {{/linkTo}}
  {{/each}}
</script>

我找不到有效的解决方案,有人可以在这里为我指出正确的方向,还是很简单无法实现我想要做的事情?我应该以不同的方式构建链接吗?

4

2 回答 2

19

对于其他在这里绊倒的人,解决方案是使用classNamesBindings.

<script type="text/x-handlebars" data-template-name="sections">
  {{#each section in controller}}
    {{#linkTo "section" section classNameBindings="section.cssClass"}} 
      {{section.label }}
    {{/linkTo}}
  {{/each}}
</script>
于 2013-01-30T01:08:58.253 回答
-1

是的,我有这个:

<input type="checkbox" {{bind-attr class=":toggle isLiked:toggleHighlight"}}>

并且需要这样做,使其成为输入助手,但无法弄清楚如何关闭元素(新手):

{{input type="checkbox" checked=isLiked}}

所以 classNameBindings 来救援:

{{input type="checkbox" checked=isLiked classNameBindings=":toggle isLiked:toggleHighlight"}}
于 2014-07-27T23:40:14.903 回答