2
我有一個有幾個模塊的angularjs應用程序。主要模塊看起來類似:AngularJS跨模塊在工廠和控制器之間共享數據
var app = angular.module('mainMod', ['apiService']);
app.controller('MainCtrl', function (Socket) {
$scope.objects = {};
// do something with $scope.objects, etc.
});
然後,我有;
var apiService = angular.module('apiService', ['ngResource']); // etc
and;
apiService.factory('Socket', ['$rootScope', function ($rootScope) {
// create a websocket and listen for stuff
// if something happens, update 'objects' in $rootScope
}]);
的事情是,我看到服務Socket
已MainCtrl
被注入,但Socket
服務中,我無法訪問$rootScope.objects
。我明白,工廠沒有自己的範圍,但自從它注入到MainCtrl
之後,不應該將根視器指向範圍MainCtrl
?
有一個使用事件的解決方法,但我並不太熱衷於此。我已經嘗試過成功,但我更喜歡這種方法可行的解決方案。
將對象分配給$ rootScope的代碼在哪裏? –
我的假設是,'MainCtrl'中的'$ scope'可以從Socket套接字引用(以某種方式)。很明顯,使用'$ rootScope'會是錯誤的。所以爲了改進這個問題,我想在'Socket'中替換'$ rootScope',以便引用'Socket'的作用域。 – Ashesh