在把手模板中读取对象属性

时间:2013-11-08 14:43:47

标签: ember.js handlebars.js

是否有某种方法可以使用把手或ember助手来读取对象属性?

{{#each object in objects}}
  <tr>
    {{#each key in keys}}
      {{!- doesn't work, because object[key] isn't valid syntax I guess --}}
      <td>{{object[key]}}</td> 
    {{/each}}
  </tr>
{{/each}}

我知道我可以读取{{object.someProperty}}之类的属性,但在我的例子中,需要读取的属性列表作为参数传递给组件(在我的示例中,它被称为{{1} })。

也许这个功能已经存在于把手或者灰烬中,我还没找到它?

1 个答案:

答案 0 :(得分:2)

该语法不适用于Ember的Handlebars。由于优化和Ember想要将数组观察器添加到正在迭代的项目,它将无法工作。你可以做的是添加一个计算属性,该属性返回对象中的项数组。你需要注意,计算属性不会随着值的变化而更新。

http://emberjs.jsbin.com/AmetIRi/1/edit

iterableObject: function(){
  return $.map(this.get('model'), function(value, key) {
    return [key + '-' + value];
  });
}.property('model')