Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/451.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何调用另一个控制器(Angular js)中的函数_Javascript_Angularjs - Fatal编程技术网

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

Javascript 如何调用另一个控制器(Angular js)中的函数,javascript,angularjs,Javascript,Angularjs,控制员 $scope.displayReport = function( status ){ statusCkeck( status ) ; } statusCkeck()位于另一个控制器-控制器2中 如何将此函数从一个控制器调用到另一个控制器 我尝试了angular.element(document.getElementById('controllerTwo')).scope().statusCheck() 但这是一个错误 请建议您可以获得以下范围: angular.element(

控制员

$scope.displayReport = function( status ){

   statusCkeck( status ) ;
}
statusCkeck()位于另一个控制器-控制器2中

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

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

但这是一个错误

请建议

您可以获得以下范围:

angular.element(document.getElementById('yourControllerElementID')).scope().get()
但是你的controllerElementID应该是元素ID而不是controllerName

例如:

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

因此,elemId是控制器中元素的id。

您可以获得范围:

angular.element(document.getElementById('yourControllerElementID')).scope().get()
但是你的controllerElementID应该是元素ID而不是controllerName

例如:

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


因此,elemId是控制器中元素的id。

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

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

您应该使用服务,以避免使用调用其他控制器中函数的代码弄乱控制器。如果要共享函数,只需在服务中定义它们,并在需要时注入该服务

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

在这里,我混淆了controllerSee编辑中的元素ID是什么。只需获取您使用控制器的元素Id。这应该可以工作,但这是一个糟糕的想法。像这样紧密耦合控制器会产生意大利面代码。是的,这不是一个好的解决方案。也许他可以将方法移动到服务中,并在全局范围内使用它:)在这里,我很困惑,controllerSee编辑中的元素ID是什么。只需获取您使用控制器的元素Id。这应该可以工作,但这是一个糟糕的想法。像这样紧密耦合控制器会产生意大利面代码。是的,这不是一个好的解决方案。也许他可以将方法移动到服务并在全局范围内使用:)但我的情况不同,我只想调用另一个函数,不需要服务调用请不要这样做……这不是正确的方法。如果您想在控制器之间共享内容,请使用服务。但我的情况不同,我只想调用另一个函数,不需要服务调用请不要这样做…这不是正确的方式。如果要在控制器之间共享内容,请使用服务。