我正在使用angularfire-beta6。假设我有一个myHeroes:FirebaseListObservable<Hero[]>
,并在我的模板中使用 async -pipe,我无法访问Hero类中的函数。
<ul>
<li *ngFor="let hero of myHeroes">
{{hero.someClassFunction()}}
</li>
</ul>
这会导致错误:self.context.$implicit.someClassFunction()
因为英雄没有投放到英雄级别。我该怎么做?
答案 0 :(得分:4)
您可以使用public void onClick(View v){
click(v);
}
public void click(View v){
int id = v.getId();
// and so on
}
上的列表或对象功能从数据库中获取对象或列表。你有AngularFireDatabase
个预定义(不是自定义)类的对象数组。
您必须手动将从FirebaseListObservable中的数据库获取的结果映射到自定义类的对象数组。
我想你从数据库中获取英雄的功能如下:
FirebaseListObserver
您可以将结果映射到名为Heroes的自定义类的数组中。您可以使用lambda表达式或将该函数作为参数传递(此示例)。
myHeroes(): FirebaseListObservable<Hero[]> {
return this.db.list('heroes');
}
如果您收到地图不是函数的错误,请添加myHeroes(): Observable<Hero[]> {
return this.db.list('heroes').map(Hero.fromJsonList);
}
在Hero类中添加以下两个静态函数:
import "rxjs/add/operator/map";