在自定义指令中调用服务

时间:2016-07-21 14:24:54

标签: javascript angularjs angularjs-directive

我有一个工作正常的自定义指令,直到我添加了一些服务,给我一个"错误:ng:areq Bad Argument"无法弄清楚原因。

我的指示:

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");
                    });

                });
            }
        };
    });

1 个答案:

答案 0 :(得分:1)

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

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");
                    });

                });
            }
        };
    }]);

另请注意最终的更改:}]);而不是});