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。这应该可以工作,但这是一个糟糕的想法。像这样紧密耦合控制器会产生意大利面代码。是的,这不是一个好的解决方案。也许他可以将方法移动到服务并在全局范围内使用:)但我的情况不同,我只想调用另一个函数,不需要服务调用请不要这样做……这不是正确的方法。如果您想在控制器之间共享内容,请使用服务。但我的情况不同,我只想调用另一个函数,不需要服务调用请不要这样做…这不是正确的方式。如果要在控制器之间共享内容,请使用服务。