AngularJS与SignalR

li-*_*raz 13 signalr angularjs

我正在玩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
  };
});
Run Code Online (Sandbox Code Playgroud)

但是我得到了错误Error: Unknown provider: $scopeProvider <- $scope <- notificationsHub.

如何使用pubsub将所有通知传递给控制器​​?也许jQuery?

joh*_*ich 5

$scope在此上下文中不存在,因为在创建控制器并创建新的子范围时会注入该内容.但是,$rootScope您可以在需要时使用.

此外,请注意$emit()向上,您的控制器范围将不会看到它.您可能需要切换到$broadcast()以便事件向下或注入$rootScope您希望能够订阅的控制器'numberOfIncidents'

查看角度文档范围上有用的wiki.