2017-07-20 3 views
0

Ich habe Eigenschaft innerhalb Komponente:Wie bekomme ich Zugang zu dieser Eigenschaft in subscribe()?

public _flashMessagesService: FlashMessagesService; 

Und den folgenden Code:

return this.http.get(this.apiUrl.base_path + 'credentials') 
     .map(res => res.json()) 
     .subscribe(
     credentials => { 
      console.log(this._flashMessagesService); 
      this._flashMessagesService.show('We are in about component!', { cssClass: 'alert-success', timeout: 1000 }); 
      this.saveToken(credentials); 
     }, 
     err => { 
      this._flashMessagesService.show('We are in about component!' + err, { cssClass: 'alert-error', timeout: 1000 }); 
      } 
    ); 

ich keinen Zugang zu this._flashMessagesService.show bekommen kann?

+2

Es gibt nichts zu tun. Sie greifen einfach darauf zu. Wenn es noch keinen Wert hat, kann dies fehlschlagen, aber aus den von Ihnen bereitgestellten Informationen kann nicht gesagt werden. –

+0

Ich bekomme undefined – OPV

+1

Wenn es keinen Wert hat, ist das keine Überraschung. Wo weisen Sie ihm einen Wert zu? –

Antwort

1

Resolution fand heraus, während der Diskussion mit dem Autor:

  1. _flashMessageService nicht in Dienst tätig war (wir herausfinden, nicht, warum).
  2. Es funktionierte korrekt innerhalb der Komponente.

Was wir getan haben, ist Bewegung Login mit _flashService zur Komponente:

Service.ts:

@Injectable() 
export class SomeService { 
    constructor(private http: Http){} 
    public login(user, pass): Observable<Response> { 
     return this.http.get("someUrl"); 
    } 
} 

Component.ts:

@Component({ 
    //some component setup 
}) 
export class MyComponent{ 
    constructor(private _flashMessagesService: FlashMessagesService, private service: SomeService) 

    public method():void { 
     this.service.login("aaa","bbb").map(res => res.json()) 
     .subscribe(credentials => { 
      this._flashMessagesService.show('We are in about component!', { cssClass: 'alert-success', timeout: 1000 }); 
      this.saveToken(credentials); 
     }, err => { 
      this._flashMessagesService.show('We are in about component!' + err, { cssClass: 'alert-error', timeout: 1000 }); 
     }); 
    } 
} 
+0

Ja, ich bin mir sicher, auch ich habe hinzugefügt, das ist app.module – OPV

+0

Sie brauchen es im Komponentenkonstruktor. –

+0

Ja, ich dud es vor – OPV

Verwandte Themen