J'ai private
variables dans constructor
et public
variables dans le class
.Comment accéder à cette variable à l'intérieur de cette fonction
Je me réfère à ces variables et fonctions en utilisant this
mot-clé.
Je reçois undefined
si j'essaie d'accéder à ces variables à l'intérieur de cette fonction.
Je suis nouveau à typescript
, comment puis-je accéder à cette variable dans cette fonction?
Technologie: Tapuscrit, angulaire 2, angulaire 1.6.5, JavaScript
admin-entreprise-settings.ts
import { Component } from '../../../../common/extentions/to-angular2';
import { Http } from '@angular/http';
export class AdminCompanySettings {
public company: any;
constructor(private $http: ng.IHttpService) {
//
}
this.company = "New company";
console.log("Prints all public variables", this); //prints all variables
var data = { url: www.google.com, data: { user: value } }
this.$http(data).then(function (response) {
console.log(response);
console.log(this.company); // undefined cannot access company
console.log("Prints window object", this); //this will print window
//and not company var or
//other scope vars
}).catch(function (error) {
console.log(error);
});
}
Je me doutais bien qu'il peut être utilisé par .bind(this)
mais Je ne suis pas familier avec où ajouter .bind();
https://angular.io/guide/http pour la réf.
vous pouvez utiliser l'expression de la fonction de flèche, qui préserve la valeur de ce. utilise la fonction '() => {}' au lieu de la fonction. –
Est-il normal que votre code soit en dehors de toute méthode et que votre classe ne soit pas fermée correctement? –
Copie possible de [Comment accéder au bon \ 'this \' dans un rappel?] (Https://stackoverflow.com/questions/20279484/how-to-access-the-correct-this-inside-a-callback) – Alex