使用动态字符串作为变量名称

时间:2016-04-05 16:29:15

标签: ember.js handlebars.js

我有一个奇怪的情况,我需要在我的Ember应用程序的把手循环中使用动态字符串作为变量名。

我有一张桌子,里面有一些咖啡饮料。让我们说我的控制器中有几个变量名为" customDrinksList"," customDrink1"和" customDrink2"。

customDrinksList是一个包含字符串["customDrink1", "customDrink2"]的数组。 customDrink1和customDrink2是来自我的ember-data商店的饮料对象数组。

{{#each customDrink in customDrinksList}}
  <tr>
    <td>{{customDrink}}</td>
    {{#each drink in customDrink}}
      ...
    {{/each}}
  </tr>
{{/each}}

当我这样做时,customDrink只是字符串,但在{{#each drink in customDrink}}语句中我想使用带有该字符串名称的变量而不是使用实际的字符串。

当我在变量名中替换(例如customDrink1)时,它会返回我正在寻找的饮料,但我需要循环使用customDrinksList中的变量名。

不确定这是否可行,因为我还没有找到任何解决方案,或者我应该采取其他方法。欢迎任何建议。

此项目正在使用Ember 1.13.x

1 个答案:

答案 0 :(得分:0)

您无法在模板中执行此操作。考虑在控制器/组件等中添加计算属性:

customDrinksListValues: Ember.computed.map(
  'customDrinksList', 
  function(drink) { return this.get(drink); })