ember.js Ember handbars模板访问深层对象属性

wtzytmuj  于 2022-11-05  发布在  其他
关注(0)|答案(1)|浏览(159)

在我的Ember应用程序中,我有以下代码
组件JS

  1. row = {};
  2. Ember.set(row[my.constants.fieldKey], "cssType", 'leftPadding')

组件HBS

  1. {{my-field cssType=(get row (my-field-key 'SECTION_ID' 'FIELD_ID') cssType)}}

因此,我希望在组件中将my-field的“cssType”属性作为“leftPadding”传递。
上面的hbs代码不起作用。
本质上,我正在尝试访问我的hbs模板中的一个深/嵌套对象属性。我甚至尝试了查找,但没有工作。

zdwk9cvp

zdwk9cvp1#

get帮助器接受对象作为第一个参数,接受路径(点分隔字符串,如“level1.level2”)作为第二个参数。
如果row是一个数组(并且my.constants.fieldKey是一个整数索引),你需要另一个helper,它通过索引从数组中返回对象。例如,ember-composable-helpers addon提供object-at helper,它可以这样使用:

  1. {{my-field cssType=(get (object-at (my-field-key 'SECTION_ID' 'FIELD_ID') row) 'cssType')}}

如果row是一个对象(并且my.constants.fieldKey是一个字符串),那么应该可以这样做:

  1. {{my-field cssType=(get row (concat (my-field-key 'SECTION_ID' 'FIELD_ID') '.cssType'))}}

相关问题