我正在尝试让 Firebase Reactive Collection(同步数据库)与 Aurelia-Firebase 插件一起使用。我正在使用以下代码设置对数据库的引用:
// collections/table.js
import {inject} from 'aurelia-framework';
import {ReactiveCollection} from 'aurelia-firebase';
export class TableCollection extends ReactiveCollection {
constructor() {
super('tables');
}
}
以及以下代码以查看引用是否有效:
// table-overview.js
import {inject} from 'aurelia-framework';
import {TableCollection} from './collections/table';
@inject(TableCollection)
export class TableOverview {
constructor(collection:TableCollection){
alert(collection);
}
}
执行我的代码后,我得到以下堆栈跟踪
------------------------------------------------
inner error: Error: Container has not been made global
at Error (native)
at TableCollection.ReactiveCollection (http://localhost:3000/jspm_packages/github/pulsarblow/aurelia-firebase@0.2.1-beta/collection.js:27:108)
at new TableCollection (http://localhost:3000/src/collections/table.js!transpiled:25:87)
at Object.invoke (http://localhost:3000/jspm_packages/npm/aurelia-dependency-injection@1.0.0-beta.1.1.3/aurelia-dependency-injection.js:334:14)
at InvocationHandler.invoke (http://localhost:3000/jspm_packages/npm/aurelia-dependency-injection@1.0.0-beta.1.1.3/aurelia-dependency-injection.js:309:168)
at Container.invoke (http://localhost:3000/jspm_packages/npm/aurelia-dependency-injection@1.0.0-beta.1.1.3/aurelia-dependency-injection.js:557:25)
at StrategyResolver.get (http://localhost:3000/jspm_packages/npm/aurelia-dependency-injection@1.0.0-beta.1.1.3/aurelia-dependency-injection.js:145:37)
at Container._get (http://localhost:3000/jspm_packages/npm/aurelia-dependency-injection@1.0.0-beta.1.1.3/aurelia-dependency-injection.js:502:41)
at Container.get (http://localhost:3000/jspm_packages/npm/aurelia-dependency-injection@1.0.0-beta.1.1.3/aurelia-dependency-injection.js:491:28)
at Object.invoke (http://localhost:3000/jspm_packages/npm/aurelia-dependency-injection@1.0.0-beta.1.1.3/aurelia-dependency-injection.js:339:33)
at InvocationHandler.invoke (http://localhost:3000/jspm_packages/npm/aurelia-dependency-injection@1.0.0-beta.1.1.3/aurelia-dependency-injection.js:309:168)
at Container.invoke (http://localhost:3000/jspm_packages/npm/aurelia-dependency-injection@1.0.0-beta.1.1.3/aurelia-dependency-injection.js:557:25)
at StrategyResolver.get (http://localhost:3000/jspm_packages/npm/aurelia-dependency-injection@1.0.0-beta.1.1.3/aurelia-dependency-injection.js:145:37)
at Container.get (http://localhost:3000/jspm_packages/npm/aurelia-dependency-injection@1.0.0-beta.1.1.3/aurelia-dependency-injection.js:494:23)
at eval (http://localhost:3000/jspm_packages/npm/aurelia-templating@1.0.0-beta.1.1.1/aurelia-templating.js:3899:73)
at Error (native)
at TableCollection.ReactiveCollection (http://localhost:3000/jspm_packages/github/pulsarblow/aurelia-firebase@0.2.1-beta/collection.js:27:108)
at new TableCollection (http://localhost:3000/src/collections/table.js!transpiled:25:87)
at Object.invoke (http://localhost:3000/jspm_packages/npm/aurelia-dependency-injection@1.0.0-beta.1.1.3/aurelia-dependency-injection.js:334:14)
at InvocationHandler.invoke (http://localhost:3000/jspm_packages/npm/aurelia-dependency-injection@1.0.0-beta.1.1.3/aurelia-dependency-injection.js:309:168)
at Container.invoke (http://localhost:3000/jspm_packages/npm/aurelia-dependency-injection@1.0.0-beta.1.1.3/aurelia-dependency-injection.js:557:25)
at StrategyResolver.get (http://localhost:3000/jspm_packages/npm/aurelia-dependency-injection@1.0.0-beta.1.1.3/aurelia-dependency-injection.js:145:37)
at Container._get (http://localhost:3000/jspm_packages/npm/aurelia-dependency-injection@1.0.0-beta.1.1.3/aurelia-dependency-injection.js:502:41)
at Container.get (http://localhost:3000/jspm_packages/npm/aurelia-dependency-injection@1.0.0-beta.1.1.3/aurelia-dependency-injection.js:491:28)
at Object.invoke (http://localhost:3000/jspm_packages/npm/aurelia-dependency-injection@1.0.0-beta.1.1.3/aurelia-dependency-injection.js:339:33)
at InvocationHandler.invoke (http://localhost:3000/jspm_packages/npm/aurelia-dependency-injection@1.0.0-beta.1.1.3/aurelia-dependency-injection.js:309:168)
at Container.invoke (http://localhost:3000/jspm_packages/npm/aurelia-dependency-injection@1.0.0-beta.1.1.3/aurelia-dependency-injection.js:557:25)
at StrategyResolver.get (http://localhost:3000/jspm_packages/npm/aurelia-dependency-injection@1.0.0-beta.1.1.3/aurelia-dependency-injection.js:145:37)
at Container.get (http://localhost:3000/jspm_packages/npm/aurelia-dependency-injection@1.0.0-beta.1.1.3/aurelia-dependency-injection.js:494:23)
at eval (http://localhost:3000/jspm_packages/npm/aurelia-templating@1.0.0-beta.1.1.1/aurelia-templating.js:3899:73)
at new AggregateError (http://localhost:3000/jspm_packages/npm/aurelia-pal@1.0.0-beta.1.1.1/aurelia-pal.js:20:13)
at Container.invoke (http://localhost:3000/jspm_packages/npm/aurelia-dependency-injection@1.0.0-beta.1.1.3/aurelia-dependency-injection.js:559:15)
at StrategyResolver.get (http://localhost:3000/jspm_packages/npm/aurelia-dependency-injection@1.0.0-beta.1.1.3/aurelia-dependency-injection.js:145:37)
at Container._get (http://localhost:3000/jspm_packages/npm/aurelia-dependency-injection@1.0.0-beta.1.1.3/aurelia-dependency-injection.js:502:41)
at Container.get (http://localhost:3000/jspm_packages/npm/aurelia-dependency-injection@1.0.0-beta.1.1.3/aurelia-dependency-injection.js:491:28)
at Object.invoke (http://localhost:3000/jspm_packages/npm/aurelia-dependency-injection@1.0.0-beta.1.1.3/aurelia-dependency-injection.js:339:33)
at InvocationHandler.invoke (http://localhost:3000/jspm_packages/npm/aurelia-dependency-injection@1.0.0-beta.1.1.3/aurelia-dependency-injection.js:309:168)
at Container.invoke (http://localhost:3000/jspm_packages/npm/aurelia-dependency-injection@1.0.0-beta.1.1.3/aurelia-dependency-injection.js:557:25)
at StrategyResolver.get (http://localhost:3000/jspm_packages/npm/aurelia-dependency-injection@1.0.0-beta.1.1.3/aurelia-dependency-injection.js:145:37)
at Container.get (http://localhost:3000/jspm_packages/npm/aurelia-dependency-injection@1.0.0-beta.1.1.3/aurelia-dependency-injection.js:494:23)
at eval (http://localhost:3000/jspm_packages/npm/aurelia-templating@1.0.0-beta.1.1.1/aurelia-templating.js:3899:73)
我一直在为此伤脑筋,我真的希望有人能帮助我。
最佳答案
显而易见的一件事是您使用的插件已过时将近 1 年。如果您查看它的 package.json
文件,您会发现它引用的是 beta Aurelia 库,而不是最新的候选版本。
查看源代码,您可以在此处看到您收到的错误消息:https://github.com/PulsarBlow/aurelia-firebase/blob/master/src/collection.js#L13 -- 我认为因为使用了两个不同版本的依赖注入(inject)库,所以容器不同,因此没有注册实例。
老实说,我只是手动安装 Firebase 并通过 Jspm 安装它来使用它:jspm install firebase
应该可以为您解决问题。
关于javascript - 错误 : container has not been made global - how to solve?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38361421/