javascript - 错误 : container has not been made global - how to solve?

标签 javascript firebase firebase-realtime-database aurelia

我正在尝试让 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/

相关文章:

ios - FirebaseTableViewDataSource 在用户注销和登录时崩溃

javascript - 尝试在石头剪刀布游戏中显示图像而不是字母

javascript - 如果包含不同的变量值如何隐藏div

java - FirebaseRecyclerAdapter 不适合我

ios - Firebase 或 Swift 未检测变音符号

javascript - 使用 Firebase 制作实时订购仪表板

javascript - Object.keys() 返回在 Ant Design 表列渲染中不起作用

javascript - 使用 jquery 编辑现有的内联样式?

android - Android Firebase 通知没有自定义声音

java - 无法使用 Cloud Firestore 写入多个位置