好的,所以这让我发疯,我正在制作一个网站的原型。 我想要的只是在视图中添加一些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
答案 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一个读数,只是为了了解一般的应用程序结构和风格。