AngularJS 与 SignalR

标签 angularjs signalr

我正在使用 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
  };
});

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

如何使用pubsub将所有通知传递给 Controller ​​?也许是 jQuery?

最佳答案

$scope 在此上下文中不存在,因为它是在创建 Controller 并创建新的子作用域时注入(inject)的内容。但是,$rootScope 在您需要时可用。

此外,请注意 $emit() 向上,您的 Controller 作用域不会看到它。您需要切换到 $broadcast() 以便事件向下进行,或者将 $rootScope 注入(inject)您希望能够订阅 的 Controller '事件数量'

查看 angular docs和一个useful wiki on scopes .

关于AngularJS 与 SignalR,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20056743/

相关文章:

javascript - AngularJS - 登录成功后在页面之间导航(使用不同的 html 页面和 Controller )

javascript - 执行 AngularJS 代码中作为属性提供的回调方法

c# - 核心 2.1 signalR 成功连接但客户端为空

javascript - 从 C# 中的另一个应用程序连接到 SignalR 自主机集线器

javascript - 使用 AngularJS 将 HTML 表格导出到 Excel

angularjs - 检索 AngularJS 应用程序名称

asp.net - SignalR可以与asp.net WebForms一起使用吗?

ssl - 具有自签名 SSL 和自托管的 SignalR

asp.net-core - 如何将响应发送到组列表并排除 SignalR Core 中的某些连接 ID?

javascript - 两个闭包有什么区别?