【问题标题】:ember/handlebars template using dynamic string as variable nameember/handlebars 模板使用动态字符串作为变量名
【发布时间】:2016-04-05 16:29:14
【问题描述】:

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

我有一张桌子,里面放着一些咖啡饮料。假设我的控制器中有几个变量,名为“customDrinksList”、“customDrink1”和“customDrink2”。

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

{{#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

【问题讨论】:

  • 为什么customDrinksList 不能只是一个数组,包含饮料对象的数组?

标签: ember.js handlebars.js


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-06-24
    • 2022-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-10
    • 1970-01-01
    相关资源
    最近更新 更多