未知提供者试图在一个MeanJS v0.4.1应用程序中包含angular-websocket
在我正在使用的MeanJS应用程序中,在控制器中使用angular-websocket有点困难。
我的应用程序基于MeanJS v0.4.1。
我首先安装它:
bower install angular-websocket --save
这创build了目录/ 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的开发人员工具的“来源”标签中看到它包含作为来源,
我想在我的控制器中使用这样的文件:
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
我尝试过的一些事情:
-
更改参考名称
根据文档( 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) {