1

在 ControllerOne 中

$scope.displayReport = function( status ){

   statusCkeck( status ) ;
}

statusCkeck() ; 在另一个控制器 -controllerTwo

我如何从一个控制器调用此函数到另一个控制器

我试过了angular.element(document.getElementById('controllerTwo')).scope().statusCheck();

但它抛出错误。

请建议

4

2 回答 2

7

您应该使用服务来避免使用调用其他控制器中的函数的代码混淆控制器。如果您要共享功能,只需在服务中定义它们并在需要的地方注入该服务。

angular.module('myApp', [])
  .factory('myService', function() {
    return {
      sharedFunction: function (foo, bar) {
        return foo + bar;
      }
    }
};
于 2013-09-28T12:08:34.287 回答
1

您可以获得范围:

angular.element(document.getElementById('yourControllerElementID')).scope().get()

但是yourControllerElementID应该是ElementID而不是 ControlerName!

例如:

<div id="elemID" ng-controller="YourController"></div>

所以elemId是 YourController 元素的 id。

于 2013-09-28T11:51:46.207 回答