如何调用另一个控制器中的函数(Angularjs)

时间:2013-09-28 11:45:17

标签: javascript angularjs

在ControllerOne中

$scope.displayReport = function( status ){

   statusCkeck( status ) ;
}

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

如何将此功能从一个控制器调用到另一个控制器

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

但它引发了错误。

请建议

2 个答案:

答案 0 :(得分:6)

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

angular.module('myApp', [])
  .factory('myService', function() {
    return {
      sharedFunction: function (foo, bar) {
        return foo + bar;
      }
    }
};

答案 1 :(得分:1)

你可以获得范围:

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

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

例如:

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

所以 elemId 是YourController元素的id。