我正在使用Angular和SignalR,我试图创建一个将担任经理的服务.
dashboard.factory('notificationsHub',function ($scope) { var connection; var proxy; var initialize = function () { connection = $.hubConnection(); proxy = connection.createHubProxy('notification'); proxy.on('numberOfIncidents',function (numOfIncident) { console.log(numOfIncident); $scope.$emit('numberOfIncidents',numOfIncident); }); connection.start() .done(function() { console.log('Connected'); }) .fail(function() { console.log('Failed to connect Connected'); }); }; return { initialize: initialize }; });
但是我收到错误错误:未知提供程序:$scopeProvider< - $scope< - notificationsHub. 如何使用pubsub将所有通知传递给控制器? jQuery可能吗?
$scope在此上下文中不存在,因为创建控制器并创建新的子范围时注入该范围.但是,$rootScope在您需要时可用.
原文链接:https://www.f2er.com/angularjs/142593.html此外,请注意$emit()向上,您的控制器范围不会看到它.您将需要切换到$broadcast(),以便事件向下或注入$rootScope以及您想要订阅的“numberOfIncidents”的控制器