在自定义指令中调用服务

Calling Services in a custom directive

本文关键字:调用 服务 指令 自定义      更新时间:2023-09-26

我有一个自定义指令,在我向它添加一些服务之前,它一直运行良好,这给了我一个"错误:ng:areq错误参数",无法找出原因。

我的指令:

angular.module('myApp')
    .directive('modalContent',[
        '$uibModal',
        'UserService'],
        function($uibModal, UserService){
        return {
            restrict: 'A',
            priority: 100,
            link: function($scope, element, attrs) {
                element.on( 'click', function( evt ){
                    console.log("Click and Stop");
                    evt.preventDefault()
                    evt.stopImmediatePropagation();
                    $scope.$apply(function(){
                        console.log("call Modal");
                    });
                });
            }
        };
    });

在创建指令之前尝试初始化角度模块:

angular.module('myApp',[]);

之后,您可以使用您的代码。


编辑:

错误是由于语法错误,在'UserService'之后有一个额外的],指令的正确定义是:

angular.module('myApp')
    .directive('modalContent',[
        '$uibModal',
        'UserService',
        function($uibModal, UserService){
        return {
            restrict: 'A',
            priority: 100,
            link: function($scope, element, attrs) {
                element.on( 'click', function( evt ){
                    console.log("Click and Stop");
                    evt.preventDefault()
                    evt.stopImmediatePropagation();
                    $scope.$apply(function(){
                        console.log("call Modal");
                    });
                });
            }
        };
    }]);

还要注意最后的变化:}]);而不是});