在Handlebars模板中读取对象属性

5
有没有一种使用handlebars或ember helpers来读取对象属性的方法?
{{#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}},但是在我的情况下,需要读取的属性列表作为参数传递给组件(在我的例子中称为keys)。

也许在handlebars或ember中已经存在这个函数,我只是还没有找到它?

1个回答

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')

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接