Вызовите одну функцию в обоих контроллерах - AngularJS 1.x - PullRequest
0 голосов
/ 29 января 2019

У меня есть два контроллера

user.controller.js:

const fetchApi = () => {
  console.log('fetching');
};

fetchApi();

Я хочу вызвать эту функцию в моем dashboard.controller.js без написания того же жесткого кода в контроллере панели мониторинга.еще раз.

1 Ответ

0 голосов
/ 29 января 2019

var app = angular.module('myapp', []);

var fetchApi = function($scope){
   console.log("fetching");
};
fetchApi.$inject = ['$scope'];
app.controller('homeCtrl', fetchApi);
app.controller('dashboardCtrl', fetchApi);
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.7.5/angular.min.js"></script>
<div ng-app="myapp">
<div ng-controller="dashboardCtrl"></div>
<div ng-controller="homeCtrl"></div>
</div>

РЕДАКТИРОВАТЬ: сервис инъекций

var app = angular.module('myapp', []);

var fetchApi = function($scope, RestService){
 console.log("fetching");
 RestService.getUser();
};
fetchApi.$inject = ['$scope', 'RestService'];
app.controller('homeCtrl', fetchApi);
app.controller('dashboardCtrl', fetchApi);

app.service('RestService', ['$http',
 function($http){
    this.getUser = function() {
        //$http api call
        console.log("get user");
    }
 }
])
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.7.5/angular.min.js"></script>
    <div ng-app="myapp">
    <div ng-controller="dashboardCtrl"></div>
    <div ng-controller="homeCtrl"></div>
    </div>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...