2017-02-22 6 views
0

ich eine Komponente haben, die eine variable myName hatAnsicht nicht aktualisiert, während Klassenvariable Wert angular2 Ändern

export class ConversationComponent implements OnInit { 
    private myName: string; 

    showNames(name) 
    { 
    this.myName=name; 
    } 
} 

der Wert unter Verwendung showNames() gesetzt, und es durch

<h4>{{MyName}} </h4> 

angezeigt wird, aber wenn Der Wert wird auf die Variable gesetzt, die sich in der Ansicht, dh der HTML-Seite, nicht ändert.

Hier ist mein Service:

import { Injectable } from '@angular/core'; 
import { ConversationComponent } from './conversation/conversation.component'; 

@Injectable() export class ChatingService { 

    constructor(private Conversation:ConversationComponent) { } 

    setValue(val) { 
    this.Conversation.showNames(this.myValue); 
    } 
} 
+1

Erstellen Sie Plunker, die das von Ihnen erwähnte Problem erzeugen. – ranakrunal9

+1

Wo nennst du 'showNames (...)'? – Vusal

+0

es von einem Service anrufen .. –

Antwort

0

Try this:

@Component(...) 
export class ConversationComponent implements OnInit { 
    private myName: string; 

    constructor(private service:ServiceClass) {} 

    ngOnInit() { 
    this.showNames(this.service.getName()); 
    } 

    showNames(name) { 
    this.myName=name; 
    } 
} 

Hier ServiceClass ist Ihr injizierbare Service.

+0

in meinem Projekt auf Last gibt es keinen Wert in der Variablen der Wert ist auf Schaltfläche klicken in einer anderen Komponente auf meiner Seite, so kann ich nicht ngOnInit() –

+0

[Hier] (https://gist.github.com/sasxa/e1164d9773b31459f6dc) ist der Kern, der die Kommunikation zwischen den Geschwisterkomponenten über den Dienst demonstriert. Sie können darüber nachdenken. Wenn Ihre Komponenten jedoch verschachtelt sind, ist es besser, über Events und Callback zwischen Eltern und Kind zu kommunizieren. – Vusal

1

Das Einfügen einer Komponente in einen Dienst funktioniert nicht. Sie brauchen einen anderen Ansatz. Sie haben wahrscheinlich eine Komponentenklasseninstanz eingefügt, die in keiner Weise mit der auf der Seite angezeigten Komponente in Zusammenhang steht.

Verwandte Themen