Angular JS Missing Required控制器错误:无法找到指令所需的控制器'ngModel'

时间:2013-12-17 08:58:33

标签: javascript angularjs angularjs-directive

我有这个指令:

directive('myDirective',
    function() {
        return {
            restrict: 'EA',
            scope: {
                params: '=ngModel'
            },
            //template: '',
            templateUrl: '/myTemplate.html',
            controller: 'myController',
            link: function(scope, iElement, iAttrs, ngModel) {
               // code.. 
            }
        };
    }
);

但是当我使用此指令时,我在控制台中收到以下错误: $ compile:ctreq,带有指向以下消息的超链接: 缺少必需的控制器 组件$ compile中的错误 无法找到指令'myDirective'所需的控制器'ngModel'!

如果我使用“template”而不是“templateUrl”,则错误消失,我不想使用“模板”。 这似乎是一个已知问题:https://github.com/angular/angular.js/issues/4603

有人可以建议解决方法吗? 编辑:我正在使用ngModel,因为我想要双向绑定

1 个答案:

答案 0 :(得分:0)

如果您想将参数传递给指令,您可以这样做 - 您在问题中所拥有的内容对我来说并不合适。

<div my-directive my-param="foo"></div>


directive('myDirective',
    function() {
        return {
           restrict: 'EA',
            scope: {
                myParam: '='
            },
            //template: '',
            templateUrl: '/myTemplate.html',
            controller: 'myController',
            link: function(scope, iElement, iAttrs, ngModel) {
               scope.myParam...
            }
       };
   }

);