Как я могу вызвать функцию, которая находится в другом контроллере (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.