在我的Ember应用程序中,我有以下代码
JS组件
row = {};
Ember.set(row[my.constants.fieldKey], "cssType", 'leftPadding')
组件HBS
{{my-field cssType=(get row (my-field-key 'SECTION_ID' 'FIELD_ID') cssType)}}
所以我想在组件中将my-field的'cssType'属性作为'leftPadding'传递。
上面的hbs代码不起作用。
基本上,我正在尝试访问hbs模板中的深层/嵌套对象属性 我什至尝试了查找,但是没有用。请提出建议。
答案 0 :(得分:1)
get
助手将对象作为第一个参数,并将路径(点分隔的字符串,例如'level1.level2')作为第二个参数。
如果row
是一个数组(而my.constants.fieldKey
是一个整数索引),则需要另一个帮助器,该帮助器按索引从数组中返回对象。例如,ember-composable-helpers插件提供了object-at
助手,可以这样使用:
{{my-field cssType=(get (object-at (my-field-key 'SECTION_ID' 'FIELD_ID') row) 'cssType')}}
如果row是一个对象(而my.constants.fieldKey
是一个字符串),那么这应该起作用:
{{my-field cssType=(get row (concat (my-field-key 'SECTION_ID' 'FIELD_ID') '.cssType'))}}