我有一个小应用程序从signalR获取数据并将它们从工厂传回控制器。 但是当rootScope触发并将对象传递给范围时,此数据会在视图上更新。 这是我的控制器代码:
(function () {
'use strict';
angular.module('app.config', ['datatables'])
//.controller('configCtrl', configCtrl)
.value('backendServerUrl', 'https://pmscsds01.azurewebsites.net/')
.controller('sysCtrl', [
"$scope", "$http", "DataConfig", "backendHubProxy", "$rootScope", function ($scope, $http, DataConfig, backendHubProxy, $rootScope) {
DataConfig.GetConfigs();
$rootScope.$on('data-ready', function (event, args) {
$scope.systems = args.data;
backendHubProxy.initalizeHub('configurationStatusClientHub', args.pcellId, $scope.systems);
});
$rootScope.$on('data-changed', function (event, args) {
$scope.systems = args;
});
}
]);})();
第一个$ rootScope。$ on工作正常,但第二个:
$rootScope.$on('data-changed', function (event, args) {
$scope.systems = args;
});
不是,它会将新更新的数据传递给系统范围,但这不会反映在视图上。
答案 0 :(得分:0)
我终于解决了这个问题 刚刚添加 $ scope.apply();
$rootScope.$on('data-changed', function (event, args) {
$scope.systems = args;
$scope.apply();
});
现在可行;)