サービス データとコントローラ データの間の参照を操作しているときに問題が発生しました
// We have a service that we use to store id and some other data
app.service('testService', function ($http, serverURL) {
var self = this;
self.data = {
id: null,
token: null,
....
};
self.initMe = function () {
return $http({
method: 'GET',
url: serverURL + '/initMe/' + '?token=' + self.data.token
});
};
return self;
});
meModule.controller('MeCtrl', function (testService, ...) {
$scope.me = testService.data; // we make a connection between the scope and the controller
$rootScope.$on('initMe', function (e, data) {
testService.initMe().success(function (data, status, headers, config) {
// typeof(data.result) === 'object'
// $scope.me = data.result; // Doesn't work
// OR
// testService.data = data.result; // Doesn't work
testService.data = data.result; //
$scope.me = testService.data; // It works, but we have to recover
// the references between scope and service
});
});
}
質問
- $scope.me = data.result または meService.data = data.result; でスコープとサービスの間の接続が失われるのはなぜですか?
- 外部 API (Get リクエスト) からサービス内のデータを更新するための他のより良い方法があるでしょうか?