2016-02-19 48 views
0

我有一個小應用程序從signalR獲取數據並將它們從工廠傳回給控制器。 但是當rootScope觸發並將對象傳遞給作用域時,此數據劑量在視圖上更新。 這裏是我的控制器代碼:角度scop視圖不更新可能會查看

(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 $上工作正常,但第二:

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

則不然,它的劑量新更新的數據傳遞到系統的範圍,但這並不反映在這個觀點上。

+0

在你的'數據changed'事件分配'args.data'到'$ scope.systems'而'數據ready'事件,它是'args',是嗎? – Michael

回答

0

我終於解決了這個問題 剛加了 $ scope.apply();

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

現在它的工作原理;)