Как передать переменную ответа API из общего сервиса на несколько контроллеров.
Я получаю данные в следующем ответе API.
$scope.responseData = reply.data;
Я использую только для API в ApiService
. Здесь я использую все API, которые я использую в своем приложении.
Служба API:
app.service('apiService', ['$http', function ($http) {
this.getData = function (userId) {
return $http.get('myapi' + userId);
};
}]);
Общая служба:
app.service('commonService', ['$window', function ($window) {
apiService.getData($scope.UserId).then(function (reply) {
$scope.responseData = reply.data;
// ...
});
});
Контроллеры 1, 2, 3:
app.controller('firstController', ['apiService', 'commonService',function (apiService, commonService) {
// ...
$scope.responseData.forEach(function (data) {
// do something
})
}]);
app.controller('secondController', ['apiService', 'commonService',function (apiService, commonService) {
// ...
$scope.responseData.forEach(function (data) {
// do something
})
}]);
app.controller('thirdController', ['apiService', 'commonService',function (apiService, commonService) {
// ...
$scope.responseData.forEach(function (data) {
// do something
})
}]);
Я снова и снова использую один и тот же l oop ($scope.responseData
) в моих контроллерах, поэтому мой приложение становится медленным. Как я могу написать код один раз и использовать его на нескольких контроллерах? Может кто-нибудь объяснить мне, как решить эту проблему?