Как я могу вызвать функцию, которая находится в другом контроллере (Angular js)
в ControllerOne
$scope.displayReport = function( status ){
statusCkeck( status ) ;
}
statusCkeck() ;
находится в другом контроллере ControlTwo
Как я могу вызвать эту функцию с одного контроллера на другой
Я попробовал angular.element(document.getElementById('controllerTwo')).scope().statusCheck();
Но он бросает ошибку.
Пожалуйста, предложите
Ответы
Ответ 1
Вместо этого вы должны использовать службу, чтобы избежать путаницы контроллеров с кодом, который вызывает функции в других контроллерах. Если вы используете общие функции, просто определите их в службе и при необходимости добавьте эту службу.
angular.module('myApp', [])
.factory('myService', function() {
return {
sharedFunction: function (foo, bar) {
return foo + bar;
}
}
};
Ответ 2
Вы можете получить область действия:
angular.element(document.getElementById('yourControllerElementID')).scope().get()
Но yourControllerElementID должен быть ElementID not ControlerName!
Например:
<div id="elemID" ng-controller="YourController"></div>
So elemId - это идентификатор элемента с YourController.