我如何调用另一个控制器(Angular JS)中的函数?

10 浏览
0 Comments

我如何调用另一个控制器(Angular JS)中的函数?

这个问题已有答案:

AngularJS中的一个控制器能否调用另一个控制器?

在ControllerOne中

$scope.displayReport = function( status ){
   statusCkeck( status ) ;
}

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

如何从一个控制器调用另一个控制器的函数?

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

但它抛出了一个错误。

请提供建议

admin 更改状态以发布 2023年5月23日
0
0 Comments

你可以获得作用域:

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

但是你的ControllerElementID应该是ElementID而不是ControlerName!

例如:


所以elemId是带有YourController的元素的ID。

0
0 Comments

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

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

0