javascript - 在 Handlebars / Ember 模板中定义数组?

标签 javascript ember.js handlebars.js

我在 ember 应用程序中有一个 Handlebars 模板。它接受一个数组。我目前这样声明数组

模板:

  {{Gd-radio-input content=radioContent value="blue"}}

Javascript:

App.IndexController = Em.Controller.extend({
    radioContent: [
        {label: 'Red', value: 'red'},
        {label: 'Blue', value: 'blue'},
        {label: 'Green', value: 'green'},
        {label: 'Yellow', value: 'yellow'},
  ]
});

出于我的目的,有时我想在模板中定义数组。

我试过了,但是 javascrip 讨厌我:

  {{Gd-radio-input content="[
    {label: 'Red', value: 'red'},
    {label: 'Blue', value: 'blue'},
    {label: 'Green', value: 'green'},
    {label: 'Yellow', value: 'yellow'},
  ]" value="blue"}}

错误:

Assertion failed: The value that #each loops over must be an Array. You passed [
        {label: 'Red', value: 'red'},
        {label: 'Blue', value: 'blue'},
        {label: 'Green', value: 'green'},
        {label: 'Yellow', value: 'yellow'},
      ] 

Uncaught TypeError: Object [
        {label: 'Red', value: 'red'},
        {label: 'Blue', value: 'blue'},
        {label: 'Green', value: 'green'},
        {label: 'Yellow', value: 'yellow'},
      ] has no method 'addArrayObserver' 

最佳答案

您可以使用 ember g helper arr 生成一个 helper,然后输入以下代码:

{{Gd-radio-input content=(arr
    (hash label='Red' value='red')
    (hash label='Blue' value='blue')
    (hash label='Green' value='green')
    (hash label='Yellow' value='yellow')
  ) value="blue"}}

说明:默认助手已经返回了一个参数数组。 hash 帮助程序生成对象。我认为 arr 助手应该已经在默认的模板助手中了,顺便说一句。

p.s.: 感谢@locks on slack channel

关于javascript - 在 Handlebars / Ember 模板中定义数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20327796/

相关文章:

javascript - 代码点火器 : How to redirect to main page if there is no data to load again?

javascript - 在 ember 中绑定(bind) Controller 中的多个操作

javascript - 使用handlebars.js显示多个json对象的值

javascript - 在 JavaScript 中查找弹出窗口的名称

javascript - Uncaught ReferenceError : Crime is not defined at HTMLAnchorElement. onclick

javascript - 如何在 JSX/React 中使用三元运算符渲染多个组件?

javascript - 我可以使用 EmberJS mixin 添加(静态)类方法吗

ember.js - 带有参数的 Emberjs 路由在某些情况下会失败

javascript - Handlebars 在 #each 中的不同对象中到达一般上下文对象中的键值对

javascript - Ember.js 动态组件