Domanda

Ho il seguente codice 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();
    }
});
.

E il modello:

<div id="participants">
    {{#each Game.gameController.participants}}
        {{name}}  
    {{/each}}
</div>

current challenge:
<div class="tooltips-gray">
    {{Game.gameController.current}}
</div>
.

Ho 2 domande:

    .
  • Sto usando la corrente come una stringa perché non so come usare ottenere il primo elemento dell'array.La mia idea è stampare il primo elemento dell'array con una classe CSS diversa.

  • Il secondo è, come stampare l'array dei partecipanti.Se metto 4 giocatori sugli array dei partecipanti, ognuno fa 4 iterazioni.Ma non so come stampare i campi come nome o immagine.

    Grazie.

È stato utile?

Soluzione

Ho convertito il tuo codice in un violino funzionante qui: http://jsfiddle.net/kbn47/8/

Il modo più naturale per legare il primo elemento dell'array sta usando FirstObject.A partire da Ember 0.9.5, FirstObject e LastObject non sono osservabili, a causa dell'impatto delle prestazioni.La squadra di Ember spera di risolverlo in futuro.

Se non si prevede di apportare molte modifiche all'array nella tua app, l'ingenuo override di FirstObject che ho fornito nel violino dovrebbe funzionare per te.

Per quanto riguarda la tua seconda domanda, ho estratto i partecipanti a separare il controller per chiarezza e fissarono alcuni problemi con il tuo codice.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top