如何使用动态ID在车把中访问关联数组的元素?

时间:2019-06-15 18:52:07

标签: arrays ember.js handlebars.js

我目前正在尝试访问emberjs车把文件中的关联数组。通过硬编码值访问没问题,但是我想基于动态“索引”获取元素。

到目前为止,我的代码是

{{#each this.model.ambient as |sound|}}
  <Ambientsound @buttonActive={{soundPlayers.[Bells]}} @sound={{sound}} @updateFunction={{action "updateSound"}}/>
{{/each}}

并且控制器的相关部分是:

soundPlayers: {"Bells":100,"Fireplace":30}

我上面的代码可以正常工作,但是现在我正在尝试基于sound.id的值访问soundPlayers。[...],就像这样:

{{#each this.model.ambient as |sound|}}
  <Ambientsound @buttonActive={{soundPlayers.[sound.id]}} @sound={{sound}} @updateFunction={{action "updateSound"}}/>
{{/each}}

sound.id中的Value作为字符串传递,对此我无能为力。

如何将sound.id转换为允许我访问数组的内容,或以某种方式使句柄查询短语,以便可以从数组中获取结果?我也可以考虑重塑控制器中的数组。任何有帮助的都欢迎!

1 个答案:

答案 0 :(得分:0)

首先,您应该做{{soundPlayers.Bells}}。 接下来,您可以使用get助手:

  <Ambientsound @buttonActive={{get soundPlayers sound.id}} @sound={{sound}} @updateFunction={{action "updateSound"}}/>