Angular2 – wie zu beobachten, ein Array?

Dies ist, was ich habe:

//settings.ts

public messages : Array<Message>;

public static getInstance() {
   if (this.instance == null) {
      this.instance = new Settings();
   }
      return this.instance;
}

this.client.onMessageArrived = (message: Message) => {
  this.messages.push(message);     //new message is pushed in to the array
};

//log.Komponente.ts

public msgs: Array<String>;

Settings.getInstance().messages.forEach(element => {
   this.msgs.push(element.getText());  //here I get the messages from settings.ts
});

//log.component.html

<ng-container  *ngFor="let msg of msgs">
   <md-card>{{msg}}</md-card>
</ng-container>

Also, was ich will, ist: jedes mal, wenn eine neue Messege kommt, die html-anzeigen sollte die neue Nachricht zu.

Ich weiß, dass ich Observablen und ich suchte Hilfe im internet, aber ich weiß nicht, wie man dieses Problem lösen….

Danke für jede Hilfe!!!

InformationsquelleAutor ALSTRA | 2017-03-11



One Reply
  1. 1

    Folgenden code hilft Ihnen,

     Settings.getInstance()
            .subscribe((messages)= >{
              messages.forEach(element => {
                    this.msgs.push(element.getText());  //here I get the messages from settings.ts
                    });
            });
    

    Den service geändert werden sollte, als

        public static getInstance() :Obserable<Message[]>) {
            if (this.instance == null) {
                //your http service call and map the response object 
            }
            return this.instance;
        }
    .
    .
    .
    this.client.onMessageArrived = (message: Message) => {
                this.messages.push(message);     //new message is pushed in to the array
            };
    .
    .
    
    • wieder dieses.Instanz; funktioniert nicht
    • ich habe versucht, aber ich weiß nicht, wie zu tun : //http-service anrufen und das response-Objekt anzeigen
    • gibt es eine Möglichkeit nur zu beobachten „öffentliche Nachrichten : Array<Nachricht>;“
    • Folgen Sie diesem Schritte
    • ich Verstand es nicht 🙂 aber thx für deine Hilfe
    • ist die oben genannte Lösung funktioniert oder Sie weitere Hilfe benötigen?
    • ich löste das problem auf eine andere Weise, aber ich würde gerne wissen, wie es mit observebles auch, also, wenn Sie Zeit haben, es zu erklären, tun Sie es bitte 🙂

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.