Angularjs 为什么我的UI只更新一次?
我用AngularJS/signalR做了一个简单的SPA,当应用程序启动时,它会向我的hub Hello发送一个通知 在客户端,我有一个由控制器管理的通知列表。此列表只更新了一次,但由于console.log(调试器显示,每次收到通知时This.messages都会增加),我可以看到每次都会调用我的回调。 我不明白为什么UI只在第一次调用时更新(当前客户端发出的调用) 下面是只工作一次的代码Angularjs 为什么我的UI只更新一次?,angularjs,signalr,Angularjs,Signalr,我用AngularJS/signalR做了一个简单的SPA,当应用程序启动时,它会向我的hub Hello发送一个通知 在客户端,我有一个由控制器管理的通知列表。此列表只更新了一次,但由于console.log(调试器显示,每次收到通知时This.messages都会增加),我可以看到每次都会调用我的回调。 我不明白为什么UI只在第一次调用时更新(当前客户端发出的调用) 下面是只工作一次的代码 NotificationCtrl.prototype.hello = function() {
NotificationCtrl.prototype.hello = function() {
console.log("hello");
this.messages.push(new Notification("Tom", "Now", "Is now connected"));
}
您需要
$scope.$apply
,因为回调不知道作用域,因为它不是从angular调用的
我想你会从我的signal.EventAggregatorProxy库中受益匪浅
它是围绕事件聚合模式设计的,非常适合具有敲除或角度锁定功能的MV*站点
请查看wiki以进行设置
演示项目
最近我写了一篇关于它的博客文章
使用nuget安装
Install-Package SignalR.EventAggregatorProxy
您是否尝试添加一个
$scope.$apply
以查看它是否有效?否,我应该将此行放在哪里?此外,我已经开始使用“controller as”语法,并且没有可用的$scope。我会在回调中说,但是如果你没有作用域,这确实会很困难:)但是我可以将其还原为使用带有$scope injected的常规控制器。你可以只为这一个变量尝试一下。它看起来确实非常有趣。我计划在第二步中研究evaggretion,但您可以提供一个解决方案来解决我的问题并将其清理干净。我一定会看一看的。