Angulaire 2 - Affichage des données d'objet asynchrones de la promesse

Edit: Il semble que mon problème principal est que je n'arrive pas à afficher asynchrone des données à partir d'un objet. J'ai une promesse contenant les données de l'objet, et lorsque j'utilise

{{ data | async }}

il affiche

[object Object]

La question est, je veux être capable d'afficher tous les différents attributs; je.e, Nom, Symbole, etc. Dans Angulaire 1, je voudrais juste utiliser

{{ data.Name | async }}

mais qui ne fonctionne pas ici, puisque l'async pipe essaie de résoudre les données.Nom de la promesse, qui n'existe pas. Je veux résoudre les données promesse et ensuite d'afficher le Nom de la clé. En ce moment, je travaille sur la création de mon propre pipe pour afficher une clé à partir d'un async objet, mais je me demandais si il ya un haut-Angulaire 2 tuyau ou de la fonction pour gérer cette!


J'ai créé un StockService classe qui retourne une Promesse contenant un objet à mon StockInfo classe, qui contient le code HTML à afficher. Je veux afficher le nom de cet objet dans mon code HTML, mais je n'arrive pas à l'obtenir à l'écran.

Dans mon StockInfo constructeur:

this.stock.getStockData(this.ticker, http).then(function(val) {
  this.data = val;

  this.name = new Promise<string>(function(resolve) {
    resolve(this.data.Name);
  });
});

où cela.stock est la StockService objet.

Dans mon code HTML:

<h2>{{name | async}}</h2>

J'ai essayé un certain nombre de différents arrangements avant de s'installer sur celui-ci. Je veux le StockService classe permettant de gérer la récupération de données et la StockInfo classe permettant de gérer l'affichage. Dans Angulaire 1, je voudrais créer une usine pour l'extraction de données et de gérer le traitement des données dans le contrôleur, mais je ne suis pas tout à fait sûr de savoir comment aller à ce sujet dans Angulaire 2.

Est-il un moyen de l'obtenir à l'écran, ou il y a de meilleures façons de concevoir mon code que je devrais regarder? Merci!

source d'informationauteur user2884505