2016-05-10 14 views
0

Ich versuche nur, eine Schleife durch einige Dummy-Daten erzeugen ich nur so kann ich die Seite Stil, ich habe dies in meinem Router:Emberjs #each Schleife funktioniert nicht auf Arraydaten

import Ember from 'ember'; 

export default Ember.Route.extend({ 
    chatMessages() { 
     return [{ 
     username: "John Doe", 
     message: "Blah Blah Blah", 
     dispic: "http://www.proirrigationwi.com/images/unknown_user.png" 
    }] 
    }, 
    activate() { 
    this.controllerFor('chatroom').subscribe(); 
    } 
}); 

und dann in mein index.hbs

{{#each chatMessages as |chatMessage|}} 
     {{chat-message username=chatMessage.username message=chatMessage.message dispic=chatMessage.dispic}} 
    {{else}} 
     {{chat-message username="System" message="There are currently no chat messages, feel free to start talking! Someone will join eventually" dispic="asd"}} 
    {{/each}} 

Aber ich sehe immer nur die else-Anweisung. Alle Informationen würden großer Dank sein

Antwort

2

Ihre Route-Setup zur Zeit falsch ist, müssen Sie Ihre chatmessages im Modell Ihrer Route zurückzukehren:

import Ember from 'ember'; 

export default Ember.Route.extend({ 
    chatMessages: [{ 
     username: "John Doe", 
     message: "Blah Blah Blah", 
     dispic: "http://www.proirrigationwi.com/images/unknown_user.png" 
    }], 
    model(){ 
    return this.get('chatMessages') 
    }, 
    activate() { 
    this.controllerFor('chatroom').subscribe(); 
    } 
}); 

Und jetzt werden Sie in der Lage sein, den Zugang es in der Vorlage wie folgt aus:

{{#each model as |chatMessage|}} 
    {{chat-message username=chatMessage.username message=chatMessage.message dispic=chatMessage.dispic}} 
{{else}} 
    {{chat-message username="System" message="There are currently no chat messages, feel free to start talking! Someone will join eventually" dispic="asd"}} 
{{/each}} 

Hier ist ein twiddle, die ich für Sie einrichten. Dann ist es wichtig, erneut die this section der Führungen zu lesen, da es den Modellhaken detaillierter in Bezug auf die Route erklärt, und this part, das erklärt, wie es auf dem Controller eingestellt ist.

+0

Können Sie '# each' nur an Modellen verwenden? – Datsik

+0

Ok, also das Modell in einer Route ist definitiv verwirrend, wenn Sie beginnen. Es bezieht sich nicht auf das "Modell", in dem Sie Entitäten und ihre Attribute definieren. Im Fall der Route ist es ein "Hook", der Ihre Daten lädt und sie auf das Controller-Modellattribut setzt. – TameBadger

+0

Siehe die Antwort, habe ich den letzten Teil mit ein paar Links aktualisiert? – TameBadger