正在游戏控制器中获取计算属性
Getting computed property in games controller
我正在前端使用ember创建一个小型多人游戏。
我在主页上有一个游戏列表,我想显示一个游戏中有多少张牌。
App.Game = DS.Model.extend({
serverSeedHash: DS.attr(),
serverSeed: DS.attr(),
table: DS.belongsTo('table'),
bingoCards: DS.hasMany('bingoCard')
});
App.BingoCard = DS.Model.extend({
player: DS.attr(),
clientSeed: DS.attr(),
game: DS.belongsTo('game'),
player: DS.belongsTo('player')
});
App.GamesRoute = Ember.Route.extend({
model: function () {
return Ember.RSVP.hash({
games: this.store.find('game'),
bingoCards: this.store.find('bingoCard')
});
},
setupController: function (controller, model) {
controller.setProperties(model);
}
});
App.GamesController = Ember.ArrayController.extend({
needs: ['game']
});
App.GameController = Ember.ObjectController.extend({
amountOfCards: function () {
return this.get('bingoCards.length');
}.property('bingoCards.@each')
});
每当我去一个特定的游戏时,我都可以通过在游戏模板中键入{{amountOfCards}}
来访问amountOfCards
属性。
然而,当我试图在主页上显示它时,它在每个循环中都不起作用。
{{#each game in games}}
<tr>
<td>{{game.id}}</td>
<td>{{amountOfCards}} {{game.amountOfCards}}</td>
<td>{{#link-to 'game' game.id}}Join{{/link-to}}</td>
</tr>
{{/each}}
基本上我的问题是:我有多个游戏,每个游戏都有多张宾果卡。我想根据宾果卡计算每个游戏的属性。我该怎么做?
您必须指定一个itemController
,它将把每个单独的游戏包装到您选择的控制器(通常是ObjectController
)中。
模板
{{#each game in controller}}
<tr>
<td>{{id}}</td>
<td>{{amountOfCards}}</td>
<td>{{#link-to 'game' id}}Join{{/link-to}}</td>
</tr>
{{/each}}
路线
App.GamesRoute = Ember.Route.extend({
model: function() {
return Ember.RSVP.all([
this.store.find('game'),
this.store.find('bingoCard')
]);
},
setupController: function(controller, model) {
var games = model[0];
controller.set('content', games);
}
});
控制器
App.GamesController = Ember.ArrayController.extend({
itemController: 'game'
});
App.GameController = Ember.ObjectController.extend({
amountOfCards: function () {
return this.get('bingoCards.length');
}.property('bingoCards.@each', 'bingoCards.length')
});
您可以在Ember API 上阅读更多关于它的信息
相关文章:
- 从Rally获取一个特定的标记,以便计算另一个字段中的值
- 如何在自定义指令中获取计算的属性
- 获取唯一值并使用javascript计算金额总和
- 从表单中获取用户输入执行计算(操作顺序)并输出回该表单
- 通过javascript/jquery从html表中获取值并进行计算
- 使用reactjs setState回调获取上一个输入值的计算值
- 正在获取客户端计算机上特定目录中的文件名
- 在 javascript 中逐个类获取元素并计算其中的元素数量
- 以点表示法计算字符串,以从视图中的对象获取相应的值
- 从HTML表单中获取计算得到的JavaScript数据,并将其作为新元素添加到相同的表单操作中以使用PHP保存
- 获取javascript计算字段时遇到问题
- 使用AngularJS从服务器获取计算结果
- 获取计算高度-Javascript-而不是jQuery
- 如何返回外部样式表类应用于元素的所有CSS属性(不获取计算样式!)
- 从两个可观测数组中获取计算值
- 使用Marionette Backbone.js渲染视图后,获取计算的CSS属性(例如:宽度)
- 获取计算的可观察对象依赖项
- 获取计算样式的元素
- 正在游戏控制器中获取计算属性
- 获取计算样式并省略默认值