灰烬,车把和阵列

时间:2014-02-21 09:29:42

标签: ember.js handlebars.js

好的,所以这让我发疯,我正在制作一个网站的原型。 我想要的只是在视图中添加一些json。 我的json是一个数组,有一些嵌套数组。 这将是json的一个例子:

    var facetList = [
        {
          'Alias' : 'WaterSaving',
          'DisplayName' : 'Vand besparende',
          'id':47,
          'Facets' : [
          { 
              'DisplayName' : 'false',
              'FacetId' : 47,
              'Value' : 'false',
              'id':0
          },
          { 'DisplayName' : 'true',
          'FacetId' : 47,
          'Value' : 'true',
          'id':1
      }
      ]
  },
  { 
      'Alias' : 'Type',
      'DisplayName' : 'Type',
      'id':48,
      'Facets' : [ 
      { 
          'DisplayName' : 'håndvask',
          'FacetId' : 48,
          'Value' : 'håndvask',
          'id':2
      },
      { 
          'DisplayName' : 'køkken',
          'FacetId' : 48,
          'Value' : 'køkken',
          'id':3
      }
      ]
  }
  ];

为此,我使用像这样的ArrayController:

App.FacetController = Ember.ArrayController.create();
App.FacetController.set('content', facetList);

当我尝试在视图中渲染时:

      <div> 
  <h2>Filtre</h2>
  {{#each App.FacetController}}
    {{DisplayName}} {{input type="checkbox" name="isAdmin" checked=valgt}}
    <br/>
    {{Facets.[1].DisplayName}}
    {{this.Facets.[1].DisplayName}}
    {{Facets}}
    {{#each Facets}}
      {{#each this}}
      this
      {{/each}}
    {{/each}} 
    {{/each}}
   </div> 

我得到了这个输出:

Vand besparende  
true true [object Object],[object Object] Type  
køkken køkken [object Object],[object Object]

很明显,车把看到了一个阵列 - 但是它拒绝在这个阵列上循环! 我做错了什么?

我使用Ember版本1.4.0

1 个答案:

答案 0 :(得分:2)

这是一个有效的jsbin:http://emberjs.jsbin.com/xixonozu/1/

您的示例代码存在一些问题:

App.FacetController = Ember.ArrayController.create();
App.FacetController.set('content', facetList);

Ember希望这些查找位置中的对象是构造函数,而不是实例,因此您需要使用Ember.ArrayController.extend();,这当然意味着您无法在其上调用set。相反,您应该允许Ember为您创建这些对象的实例,并在路径的model挂钩中提供模型数据。

同样,在您的模板中,您不应该像访问全局对象一样访问全局对象,或者使用全局查找(大写单词)和{{each}}等帮助程序。

一般来说,我建议从头到尾给Ember.js guides一个读数,只是为了了解一般的应用程序结构和风格。