Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/469.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在车把上打印Ember.js模型_Javascript_Ember.js_Handlebars.js - Fatal编程技术网

Javascript 在车把上打印Ember.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

我有以下ember.js代码:

app.js:

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”})。