Read object properties in handlebars template

北城以北 提交于 2019-12-22 05:53:21

问题


Is there a some way to read object properties using handlebars or 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}}

I know that I can read properties like so {{object.someProperty}}, however in my case the list of properties which needs to be read is passed to a component as an argument (in my example it is called keys).

Maybe this function already exists in handlebars or ember and I just didn't find it yet?


回答1:


That syntax doesn't work for Ember's Handlebars. Because of optimization and Ember wanting to add array observers to the item being iterated it won't work. What you can do is add a computed property that returns an array of the items in the object though. You do need to be careful though, the computed property won't update as values change.

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

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


来源:https://stackoverflow.com/questions/19861751/read-object-properties-in-handlebars-template

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!