多个对象Firebase

时间:2017-03-28 05:02:38

标签: javascript angular firebase firebase-realtime-database

我在Firebase中有以下数据库:




  Root Categories / ID / {text:Item1 AL:Item 2 TEXT:Item 3 ...} 
  




我有以下代码来获取我想要的项目“.text”或具有前一个文本的项目:




  this.categories = af.database.list('/ categories /'+ this.ID);
 this.categories.subscribe(categories =&gt ; console.log(categories));
 this.categories.subscribe(
 categories => {
 categories.map(categories =>
 console.log(categories。)文本),

)
});'
  




Console.log完全返回我的内容但是当我在HTML文件中检索 {{categories}} 时,它返回 Object Object





有人知道如何解决它?对不起我的无知我是一个初学者。




1 个答案:

答案 0 :(得分:0)

如果您尝试仅打印{{categories}}这是预期的行为,因为categories似乎是一个对象。如果您希望查看categories,则需要添加json管道:

{{categories | json}}

但我怀疑这不是你想要的。您需要使用属性来显示categories的每个属性,例如:

{{categories.text}}

如果categories是一个数组,请忽略上面的代码,但json管道也适用于这种情况。如果categories是一个数组,那么你需要迭代数组,然后从每个对象打印你想要的属性,例如

<div *ngFor="let cat of categories">
  {{cat.text}}
</div>

如果您只想选择某些特定值,可以在地图中执行此操作并将值分配给新数组,例如:

categoriesText: string[] = [];

this.categories.subscribe(
 categories => {
   categories.map(categories => {
      console.log(categories.text)
      this.categoriesText.push(categories.text); // push values to new array
   });
 });

然后你可以迭代那个数组:

<div *ngFor="let cat of categoriesText">
  {{cat}} <!-- here no property name as it's only a string array -->
</div>

希望这有帮助! :)