javascript - “未知提供商”尝试在 MeanJS v0.4.1 应用程序中包含 Angular-Websocket

标签 javascript angularjs node.js meanjs

我在我正在开发的 MeanJS 应用程序的 Controller 中使用 angular-websocket 时遇到了一些困难。

我的应用程序基于 MeanJS v0.4.1。

我首先安装它:

    bower install angular-websocket --save    

这创建了目录/public/lib/angular-websocket

接下来我将其添加到/config/assets/default.js

    lib: {
      css: [
        ...
      ],
      js: [
        ...
        'public/lib/angular-websocket/angular-websocket.js'
      ],
      tests: ['public/lib/angular-mocks/angular-mocks.js']
    },

在我的/modules/core/client/app/config.js 文件中,我已将其添加为依赖项:

    var applicationModuleVendorDependencies = [
        ...
        'angular-websocket'
    ];

最后在我的 Angular 模块本身中,

    angular.module('somemodule').controller('ModulenameController', ['$scope', '$http', '$stateParams', '$location', 'Authentication', 'SomeModule', 'ngWebSocket',
        function ($scope, $http, $stateParams, $location, Authentication, SomeModule, ngWebSocket) {

当我查看我的页面时,我可以在 Chrome 开发者工具的“源”选项卡中看到它作为源包含在内,

我正在尝试在我的 Controller 中将此文件与类似的内容一起使用:

    var dataStream = ngWebSocket('wss://www.somesite.com/realtime');

    dataStream.onMessage(function(message) {
        console.log("dataStream Message: " + message);
        $scope.orderBook = message;
    });

    dataStream.send('{"op":"subscribe", "args":"someargument"}');

但是,我的控制台显示以下错误:

Error: [$injector:unpr] Unknown provider: ngWebSocketProvider <- ngWebSocket <- ModuleNameController

我尝试过的一些事情:

  1. 更改引用名称
    根据文档(https://www.npmjs.com/package/angular-websocket)

    angular.module('YOUR_APP', [
      'ngWebSocket' // you may also use 'angular-websocket' if you prefer
    ])
    

我尝试过使用“ngWebSocket”、“angular-websocket”,但仍然遇到同样的问题。

  • 我尝试查看我的代码,看看这是否被重新定义为 angularJS 文档:

    https://docs.angularjs.org/error/ $injector/unpr

  • 指出此错误的原因可能是“使用 angular.module API 重新定义模块”。

    任何帮助将不胜感激。

    最佳答案

    该工厂实际上名为 $websocket,因此您应该执行以下操作:

     angular.module('somemodule').controller('ModulenameController', ['$scope', '$http', '$stateParams', '$location', 'Authentication', 'SomeModule', '$websocket',
        function ($scope, $http, $stateParams, $location, Authentication, SomeModule, $websocket) {
    

    关于javascript - “未知提供商”尝试在 MeanJS v0.4.1 应用程序中包含 Angular-Websocket,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33042784/

    相关文章:

    javascript - $.when.apply 在 Angular AJAX promise 实现中?

    javascript - 取消 RouteChange 上的 AngularJS $timeout

    node.js - Node js : there are two setInterval()

    node.js - 打印嵌入字符串中的新行

    javascript - 单击按钮时突出显示第 n 个子隐藏内容使用 jquery

    angularjs - 未知 $rootElementProvider : Qunit + angularjs integration

    JAVASCRIPT --> 为什么我会收到错误消息 "Uncaught TypeError: number is not a function "?

    node.js - 角色 (BrowserId) 身份验证在 Express 3.0 中永远不会成功(使用 passport-browserid)

    javascript - 嵌套数组的访问长度

    javascript - 检测弹出窗口何时关闭