我创建了一个Ember.JS应用程序,我在ApplicationController
上挂了一些需要在整个应用程序中可访问的属性。其中一个属性是按服务器名称(JS数组)细分的队列(JS对象)。在我的模板中,我想列出每个数组的项目,但我不确定如何做到这一点。我读了question,但我真的不明白答案。
对于我的代码,我有:
App.ApplicationController = Ember.Controller.extend({
currentUser: null,
queuedPlayers: {
"The Bastion": [],
"Begeren Colony": [],
"The Harbinger": [],
"The Shadowlands": [],
"Jung Ma": [],
"The Ebon Hawk": [],
"Prophecy of the Five": [],
"Jedi Covenant": []
}
});
另一个控制器:
App.IndexController = Ember.Controller.extend({
needs: ['application'],
currentUser: Ember.computed.alias('controllers.application.currentUser'),
queuedPlayers: Ember.computed.alias('controllers.application.queuedPlayers'),
...
在模板中:
{{#each server in servers}}
<h2>{{server}}</h2>
{{#each player in queuedPlayers[server]}}
{{player}}
{{/each}}
{{/each}}
servers
是一组服务器(与queuedPlayers
中的属性匹配)我将传递给模板以用作选择列表的内容属性,因此{{server}}
标记渲染很好。然而,queuedPlayers[server]
或queuedPlayers.get(server)
显然不起作用,因为这不是把手的工作方式,而是我想要实现的目标。
我主要是一个Python开发人员,所以JS对我来说有些新鲜,所以我不熟悉它的所有细微差别。
答案 0 :(得分:2)
您需要创建一个组件并传入必要的属性才能完成此任务。
SOF's
NAKing
{{#each server in servers}}
<h2>{{server}}</h2>
{{queued-players collection=queuedPlayers selection=server}}
{{/each}}