Abonnez-vous Observables valeur
Quand je suis à la journalisation de la valeur de ma variable à l'intérieur de la abonnez-vous, j'ai une valeur, mais en la faisant à l'extérieur, je reçois indéfinis ???:
this._postService.getConf("app/conf/conf.json")
.subscribe(res =>{
this.home = JSON.stringify(res);
console.log("value :" + this.home);
je veux initialiser mon domicile variable avec une certaine valeur, je le fais sur ngOnInit mais il d'obtenir la valeur undefined quand je suis en train de l'obtenir à l'extérieur:
C'est ma fonction :
getConf(url) {
return this._http.get(url).
map(res => {return res.json()});
}
ngOnInit() {
this._postService.getConf("app/conf/conf.json")
.subscribe(res => {
this.home = JSON.stringify(res);
console.log("hahowaaaaaaaa" + this.home);
}
);
this._postService.getPosts(this.home)
.subscribe(result =>{
this.loading = false;
this.actionsG = result;
var count = JSON.stringify(result);
this.aCount = count.substring(count.indexOf(','),23);
},error=> console.error('Error: ' + error), ()=> console.log('finish! ActionsG'));
this._postService.getPosts(this.home ).subscribe(result => this.actionsV =
result, error=> console.error('Error: ' + error), ()=> console.log('finish! ActionsV ngOnInit' + this.page));
}
OriginalL'auteur Anna | 2016-07-06
Vous devez vous connecter pour publier un commentaire.
C'est la façon dont les phénomènes observables de travail. Lorsque la réponse du serveur arrive, le callback passé à
subscribe(...)
est appelé par le observables.La
console.log()
à l'extérieur desubscribe()
est exécutée avant l'appel au serveur est même fait.Ce n' "affecter la valeur de ma variable sir"? Quelle variable? Affecter comment?
je suis désolé de ne pas expliquer : je vais essayer d'obtenir un fichier json qui contient des données sur : ngOnInit pour imprimer des données lors du chargement de la page, et le serveur lien je vais l'obtenir à partir d'un fichier et l'affectant à mon var à la maison, donc avant l'obtention de données de serveur, je suis arriver à la maison de la valeur pour le pousser dans mon service et je suis en train de faire à la fois ce sur ngOnInit, s'il vous plaît n'hésitez pas à demander si vous avez besoin plus d'informations
Si vous souhaitez modifier la valeur de la réponse que vous devez faire à l'intérieur de
map(...)
ousubscribe(...)
. Lorsque vous appelez_postService.getConf()...
n'a pas beaucoup d'importance.ouais, mais comment pouvais-je en retard ? parce que quand j'appelle les services sur ngOnInit ils dépendent de ma 'maison' var valeur, j'ai édité mon post, donc vous pouvez voir ngOniti contient ..
OriginalL'auteur Günter Zöchbauer
Mon ngOnInit() avait appelé un processus qui récupère les données d'une DB.
Je m'attendais à la
this.##
variables qui ont été mises à jour dans la méthode à être disponible après l'appel. Comme il a été décrit ci-dessus, l'appel passe à observables, ce qui signifie que les variables ne sont pas disponibles dans ngOnInit(). Mais ils ont tous été remplie lorsque la page HTML affichée.Donc la solution est de faire tout le travail nécessaire à l'intérieur de la méthode et faire référence à des variables qui seront remplies dans HTML.
OriginalL'auteur Fred Fuchs