我有一个 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
和;
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
, rootscope 不应该指的是MainCtrl
?
有一个使用事件的解决方法,但我不太热衷于此。我已经成功地尝试过了,但我更喜欢一个可行的解决方案。