gpt4 book ai didi

javascript - 从一个 Controller 调用方法,该 Controller 定义在另一个 Controller : AngularJS 中的指令内部

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:46:43 25 4
gpt4 key购买 nike

我有一个指令,其中存在 Controller ,我有一个函数。我需要从另一个 Controller 调用该函数。

指令:

    angular.module('test.directives').directive("manageAccess", function() {
return {
restrict: "E",
replace: true,
templateUrl: "template/test.html",
controller: function($scope, $element, $http) {
$scope.getRoles = function() {
console.log('hi');
};
}
};
});

$scope.getRoles 方法是我需要从不同 Controller 调用的方法。

Controller :

    angular.module("test.controllers").controller("testController", function($scope, $http) {
$scope.getUsers = function() {
// i need to call getRoles method here
}
});

我该怎么做?

请帮忙,谢谢。

最佳答案

您可以使用 AngularJS Service/Factory

我将 getRoles 函数放在 API 的工厂中,可以在任何地方注入(inject)。

Working Demo

var RolesModule = angular.module('UserRoles', []);

RolesModule.factory('RolesAPI', function() {
return {
getRoles: function() {
this.roles = 'my roles';
console.log('test');
}
}
});

angular.module("test.controllers",['UserRoles'])
.controller("testController",function($scope,$rootScope,RolesAPI, $http) {
$scope.getUsers = function() {
RolesAPI.getRoles();
}
});

angular.module('test.directives',['UserRoles'])
.directive("manageAccess", function() {
return {
restrict: "E",
replace: true,
templateUrl: "template/test.html",
controller: function($scope, $element, $http) {

}
};
})

关于javascript - 从一个 Controller 调用方法,该 Controller 定义在另一个 Controller : AngularJS 中的指令内部,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25802424/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com