javascript - 在自定义指令中调用服务

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

                });
            }
        };
    });

最佳答案

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

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

                });
            }
        };
    }]);

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

关于javascript - 在自定义指令中调用服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38506899/

相关文章:

javascript - 防止在单击按钮时提交表单时重新加载页面

angularjs - 一个元素的多个指令可以共享一个隔离的范围吗?

javascript - Bluebird , promise ,然后()

javascript - ServiceStack 从 Javascript 客户端请求批处理

Javascript向对象添加方法

javascript - 使用 Angular-google-chart 指令时,如何访问饼图中的选定项目?

java - IE11 CORS 拒绝 https 上的选项

javascript - AngularJS 最佳实践 - 具有多种方法的工厂

javascript - angular 在输入字段上的 $parsers 在初始输入时遇到困难

angularjs - 多个指令要求新的/隔离的范围