如何在Emblem.js中迭代迭代内的对象?

时间:2014-07-08 14:55:20

标签: ember.js handlebars.js emblem.js

我在Emblem.js模板中有以下代码:

each segment in controller
  .panel.panel-default
    .panel-heading
      h4.panel-title
        a data-parent="#accordion" data-toggle="collapse" href="#collapse{{segment.id}}"
          span {{segment.title}}
    div id="collapse{{segment.id}}" class="panel-collapse collapse in"

我实际想要实现的是将对象数据插入到HTML属性中。我一直在尝试{{segment.id}},但是会渲染一些脚本标签以及我不想要的值。还有另一种方法吗?

2 个答案:

答案 0 :(得分:3)

HTMLBars出来之前,Ember.js需要插入占位符标签来操纵DOM。您有两种选择:

  1. 创建一个将为您加入字符串的计算属性,然后使用bind-attr将该属性应用于ID或类。
  2. 使用unbound helper。这将执行您想要的操作,但如果属性发生更改,则不会更新该属性。
  3. 如果可以,我建议先做第一次。

答案 1 :(得分:1)

如果数据不会发生变化,您可以使用unbound,并且只是在没有脚本标记的情况下将其插入其中。

each segment in controller
  .panel.panel-default
    .panel-heading
      h4.panel-title
        a data-parent="#accordion" data-toggle="collapse" href="#collapse{{unbound segment.id}}"
          span {{segment.title}}
    div id="collapse{{segment.id}}" class="panel-collapse collapse in"