Angular представление области видимости не обновляется, может просматриваться

У меня есть небольшое приложение, которое получает данные от 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;
            });

нет, он передает новые обновленные данные в системную область, но это не отражается на представлении.


person Misha Beskin    schedule 19.02.2016    source источник
comment
В событии data-ready вы присваиваете args.data $scope.systems, тогда как в событии data-changed это args, верно?   -  person Michael    schedule 19.02.2016


Ответы (1)


Наконец-то я решил эту проблему, просто добавив $scope.apply();

$rootScope.$on('data-changed', function (event, args) {
            $scope.systems = args;
            $scope.apply();
        });

Теперь работает ;)

person Misha Beskin    schedule 20.02.2016