编程语言
首页 > 编程语言> > javascript-如何获取AngularFire 2中的键值?

javascript-如何获取AngularFire 2中的键值?

作者:互联网

我在Angular 2中使用AngularFire获取唯一键的值时遇到问题.

这是我的结构:

enter image description here

如您所见,报表内部具有唯一的键wenge值.我可以使用* ngFor轻松获取这些值,但是我想要的是获取唯一键的值.这是我的代码:

import { AngularFire, FirebaseListObservable} from 'angularfire2';

export class MapsComponent implements OnInit {
  item: FirebaseListObservable<any[]>;
  constructor(private af: AngularFire) { 
    this.item = af.database.list('/reports/-Ka2fkQJ3krtBztMtiRD')
  }
  ngOnInit() {
  }
}

的HTML:

<md-card>
  <md-card-title>Report</md-card-title>
  <md-card-content>
    {{item.plateNumber}}
  </md-card-content>
</md-card>

如您所见,我想在键-Ka2fkQJ3krtBztMtiRD中获取值,所以我所做的是af.database.list(‘/ reports / -Ka2fkQJ3krtBztMtiRD’).我什么也没有得到,甚至没有错误.

我在这里想念什么吗?任何帮助将非常感激.

解决方法:

如果要引用单个对象而不是列表的可观察对象,则应使用FirebaseObjectObservable

import { AngularFire, FirebaseObjectObservable } from 'angularfire2';
...
export class MapsComponent implements OnInit {
  item: FirebaseObjectObservable<any>;
  constructor(private af: AngularFire) { 
    this.item = af.database.object('/reports/-Ka2fkQJ3krtBztMtiRD');
  }
  ngOnInit() {
  }
}

您的模板将如下所示:

<md-card>
  <md-card-title>Report</md-card-title>
  <md-card-content>
    {{(item | async)?.plateNumber}}
  </md-card-content>
</md-card>

如果您担心有很多物品|异步表达式遍布整个模板,您可以利用ngIf‘s support for local variables

<md-card *ngIf="item | async; let i">
  <md-card-title>Report</md-card-title>
  <md-card-content>
    {{i.plateNumber}}
  </md-card-content>
</md-card>

标签:angularfire2,angularfire,firebase,angularjs,javascript
来源: https://codeday.me/bug/20191026/1935498.html