2017-05-15 3 views
1

Ich habe einen Anbieter für die Authentifizierung in ionic2 und Angualr2 für die Anmeldung erstellt, die wie folgt lautet:Fehler: Eigenschaft 'token' existiert nicht auf Typ '() => any'

login provider

@Injectable() 
export class Service{ 
public token : any; 
constructor(public http: Http, public storage: Storage){} 

    login(credentials){ 
    return new Promise((resolve, reject)=>{ 
    //headers implemented. 
    this.http.post('url',credentials, {headers: headers}) 
    .subscribe(res=>{ 
    let data = res.json(); 
    this.token = data.token // error is shown here. red line on token. 
    storage.set('token',data.token) 
    resolve(credentials);}); 

Fehler, der sich auf dem Token widerspiegelt, wird in der Kommentarzeile zu dem Wort token von data.token erwähnt.

Benötigen Sie Hilfe?

+0

Ist es ein Tippfehler? 'öffentliche Tken: any;'. Ich denke, es sollte "öffentlichen Token: any; – Abhi

+0

Ihr Eigentum hat einen Tippfehler:' public tken' – devqon

+0

Entschuldigung, es ist ein Tippfehler hier..aber nicht in der tatsächlichen code..updated die Frage @Abhi – Aditya

Antwort

0

Was ist res.json()? ist es eine Funktion oder Eigenschaften oder

Versuchen von stringto json Umwandlung

json.parse(res) 
2

Sie verwenden Erklärungen Typ sollte. Aufgrund des Fehlers verwenden Sie eine strikte TypeScript-Konfiguration. Auch mit async/await können Sie viel mehr lesbaren Code produzieren. Das Problem, das Sie haben, ist, dass Sie entweder nicht let data: any richten, oder weil Sie die ; nach der Erklärung der data fehlen, in Kombination mit nicht this.storage verwenden, aber nur storage:

@Injectable() 
export class Service{ 
    public token : any; 

    constructor(public http: Http, public storage: Storage){} 

    login async (credentials: any): Promise<any> { 
     let data: any = await this.http.post('url',credentials, { 
      headers: headers 
     }).map(r => r.json()).toPromise(); 
     this.token = data.token; 
     this.storage.set('token', data.token); 
     return credentials; 
    } 

} 
Verwandte Themen