我一直在关注Uversmy上的Traversy Media的Angular4 course,一切顺利,直到我进入客户端面板项目的AngularFire2设置和客户端服务部分。 Webpack无法编译声明:FirebaseListObservable和FirebaseObjectObservable没有导出成员。
我看到一些人提高similar issues on GitHub,但无法弄清楚如何解决它。此外,我已经尝试了教师提供的确切代码(这是最后的手段,因为我宁愿自己弄清楚),但这也不起作用。 Angularfire2版本是:4.0.0-rc.1
这是client.service.ts文件:
import { Injectable } from '@angular/core';
import { AngularFireDatabase, FirebaseListObservable, FirebaseObjectObservable} from 'angularfire2/database';
import { Observable } from 'rxjs';
import { Client } from '../models/Client';
@Injectable()
export class ClientService {
clients: FirebaseListObservable<any[]>;
client: FirebaseObjectObservable<any>;
constructor(
public af:AngularFireDatabase
) {
this.clients = this.af.list('/clients') as FirebaseListObservable<Client[]>;
}
getClients(){
return this.clients;
}
newClient(client:Client){
this.clients.push(client);
}
getClient(id:string){
this.client = this.af.object('/clients/'+id) as FirebaseObjectObservable<Client>;
return this.client;
}
updateClient(id:string, client:Client){
return this.clients.update(id, client);
}
deleteClient(id:string){
return this.clients.remove(id);
}
}
这是唯一一个在VS Code linter中显示错误的文件:
提前感谢任何有用的见解。
在过去的几个版本中,有3种不同的方法可以导入数据库可观察对象。
版本<4.0:
import { AngularFire, FirebaseListObservable, FirebaseObjectObservable } from "angularfire2";
版本> 4.0:
import { AngularFireDatabase, FirebaseListObservable, FirebaseObjectObservable } from "angularfire2/database";
版本> 5.0:
从5.0
开始,您可以使用普通的observables
,或者从弃用的目录中导入它,如下所示:
import { AngularFireDatabase, FirebaseListObservable, FirebaseObjectObservable } from "angularfire2/database-deprecated";
我建议你将你的版本从rc
升级到4.0
或其他东西。