我有一个指令,其中 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
        }
    });

我怎样才能做到这一点?

请帮忙,
谢谢。

最佳答案

尝试以下

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

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

在 html 中
<manage-access get-roles="getRoles"></manage-access>

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

10-17 01:12