Javascript 在车把上打印Ember.js模型
我有以下ember.js代码: app.js:Javascript 在车把上打印Ember.js模型,javascript,ember.js,handlebars.js,Javascript,Ember.js,Handlebars.js,我有以下ember.js代码: app.js: Game = Ember.Application.create({ ready: function() { Game.gameController.getChallenge(); Game.gameController.participants.pushObject(Game.participants("player1","player1.jpg")); } }); Game.challeng
Game = Ember.Application.create({
ready: function() {
Game.gameController.getChallenge();
Game.gameController.participants.pushObject(Game.participants("player1","player1.jpg"));
}
});
Game.challenge = Ember.Object.extend({
challengetype: null,
description: null,
id: null
});
Game.participants = Ember.Object.extend({
name: null,
image: null
});
Game.gameController = Ember.ArrayController.create({
content: [],
current: "",
participants: [],
getChallenge: function() {
var self = this;
var url = "http://api:9393/challenge";
$.getJSON(url, function(data) {
self.insertAt(0,Game.challenge.create(data.challenge));
self.set('current', data.challenge.description);
});
},
});
Game.NewChallengeView = Ember.View.extend({
click: function(evt) {
Game.gameController.getChallenge();
}
});
以及模板:
<div id="participants">
{{#each Game.gameController.participants}}
{{name}}
{{/each}}
</div>
current challenge:
<div class="tooltips-gray">
{{Game.gameController.current}}
</div>
{{{#每个游戏.游戏控制器.参与者}
{{name}}
{{/每个}}
当前的挑战:
{{Game.gameController.current}
我有两个问题:
- 我使用current作为字符串,因为我不知道如何使用get获取数组的第一个元素。我的想法是使用不同的css类打印数组的第一个元素
- 第二个问题是如何打印参与者数组。如果我在参与者数组中放置4个玩家,每个玩家进行4次迭代。但我不知道如何打印诸如名称或图像之类的字段
谢谢。我已将您的代码转换为可用的小提琴: 绑定到数组第一个元素的最自然的方法是使用firstObject。从Ember 0.9.5开始,由于性能影响,firstObject和lastObject不可见。余烬团队希望在将来解决这个问题 如果你不打算在你的应用程序中对数组做很多更改,那么我在fiddle中提供的对firstObject的简单覆盖应该适合你
关于你的第二个问题,为了清晰起见,我将参与者抽到单独的控制器中,并修复了代码中的一些问题。谢谢@luke melia。我会检查你的代码,但我做错的主要事情是在创建上。我做的是:Object.create(“name”)而不是Object.create({name:“name”})。