IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Avatar
Wayne
Člen
Avatar
Wayne:5.10.2016 10:37

Ahoj mohl by mi někdo poradit proč v kódu níže

ngOnInit() {

        this.http.get("api/..").subscribe(this.successClear);
    }

    private successClear(data: any): void{
        console.log(data);
        console.log(this.http);
        this.http.post("api/..",     this.params).map(data).subscribe(this.successLoad);
    }

v metodě successClearCache se nemohu dostat na this.http, který je undefinied

 
Odpovědět
5.10.2016 10:37
Avatar
Marian Benčat:5.10.2016 19:56
ngOnInit() {

        this.http.get("api/..").subscribe(this.successClear);
    }

    private successClear(data: any): void{
        console.log(data);
        console.log(this.http);
        this.http.post("api/..",     this.params).map(data).subscribe(this.successLoad);
    }

Do subscribe davas call back async eventu.. A ten je implicitně s Global scope (this. je Window)..
Pokud nechces ten obsah successClear davat dovnitr primo toho subscribe pomoci lambdy, tak to musis bindnout..

this.http.get("api/..").subscribe(this.successClear.bind(this));
Editováno 5.10.2016 19:57
Nahoru Odpovědět
5.10.2016 19:56
Totalitní admini..
Avatar
Marian Benčat:5.10.2016 19:56

Vítej ve světě debilního JavaScriptu a né příliš zřejmého Scope.

Nahoru Odpovědět
5.10.2016 19:56
Totalitní admini..
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 3 zpráv z 3.