如何获取 AngularFire 2 中的键值?
How to get values of key in AngularFire 2?
我在 Angular 2 中使用 AngularFire 获取唯一键的值时遇到问题。
这是我的结构:
如您所见,报告中包含唯一键 值。我可以使用 *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>
如果您担心模板中散布着大量 item | async
表达式,您可以利用 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>
我在 Angular 2 中使用 AngularFire 获取唯一键的值时遇到问题。
这是我的结构:
如您所见,报告中包含唯一键 值。我可以使用 *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>
如果您担心模板中散布着大量 item | async
表达式,您可以利用 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>