Typescript Firebase不是构造函数
我正试图将Firebase集成到Angular 2应用程序中,但我一直遇到这样的错误,Typescript Firebase不是构造函数,typescript,firebase,angular,Typescript,Firebase,Angular,我正试图将Firebase集成到Angular 2应用程序中,但我一直遇到这样的错误,Firebase不是构造函数。以下是我所做的: 使用bower安装firebase 在index.html中引用了脚本 安装firebase环境打字 创建了Firebase服务 通过bootstrap() 把它注射到一个部件里 FirebaseService.ts @Injectable() export class FirebaseService { dataRef: Firebase; co
Firebase不是构造函数。以下是我所做的:
使用bower安装firebase
在index.html中引用了脚本
安装firebase环境打字
创建了Firebase服务
通过bootstrap()
把它注射到一个部件里
FirebaseService.ts
@Injectable()
export class FirebaseService
{
dataRef: Firebase;
constructor() {
this.dataRef = new Firebase('https://boiling-inferno-1117.firebaseio.com/votes');
}
}
boot.ts
bootstrap(App, [HTTP_PROVIDERS,
ROUTER_PROVIDERS,
IdentityService,
ApiService,
UrlService,
provide(FirebaseService, {useValue: new FirebaseService()})
])
.catch(err => console.error(err));
app.ts
@Component({
selector: 'app',
templateUrl: 'app/app.html',
directives: [AuthRouterOutlet, ROUTER_DIRECTIVES]
})
export class App {
constructor(private firebase:FirebaseService)
{
}
}
Systemjs配置:
System.config({
defaultJSExtensions: true,
map: {
'jquery': 'vendors/js/jquery',
'firebase': 'vendors/js/firebase'
},
packages: {
angular2: { defaultExtension: false },
rxjs: { defaultExtension: false }
}
});
导入Firebase
如下:
从“Firebase”导入*作为Firebase代码>
非常感谢您对我如何解决此问题的任何建议。我将通过以下方式配置Firebase:
System.config({
map: {
firebase: '/node_modules/firebase/lib/firebase-web.js',
(...)
},
(...)
});
并在TypeScript文件中按如下方式导入:
import * as Firebase from 'firebase';
有关更多详细信息,请参阅Angularfire2的文档:
我们可以假设:provide(FirebaseService,{useValue:new FirebaseService()})是一个打字错误吗?因为您应该使用提供程序,然后它将获取一个数组。提供者:[FirebaseService]您还可以提供您的SystemJS配置吗?以及导入Firebase类的方式?谢谢@R.理查兹也试过了。同样的错误。我有一个gulp任务,它将firebase web.js
文件从node\u modules
文件夹复制到我的dist/vendors/js
目录中。所以它看起来基本上和你展示的一样。我错了吗?事实上,您在SystemJS配置中指定了文件夹而不是js文件;-)您需要映射js文件。vendors/js/firebase
这里firebase是类似于firebase.js的文件名。从那时起,我启用了defaultJSExtensions:true
。.js
似乎是为我附加的。这就是为什么我的配置中的jquery工作得很好。