Javascript 缺少必需的控制器错误:控制器';ngModel';,指令can'要求;找不到
我有这个指示:Javascript 缺少必需的控制器错误:控制器';ngModel';,指令can'要求;找不到,javascript,angularjs,angularjs-directive,Javascript,Angularjs,Angularjs Directive,我有这个指示: directive('myDirective', function() { return { restrict: 'EA', scope: { params: '=ngModel' }, //template: '', templateUrl: '/myTemplate.html',
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”,错误就会消失,并且我不希望使用“template”。
这似乎是一个已知的问题:
有人能提出一个解决办法吗?
编辑:我使用ngModel是因为我需要双向绑定如果您想将参数传递给指令,您可以这样做-您的问题在我看来不太正确
<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...
}
};
}
指令(“myDirective”,
函数(){
返回{
限制:“EA”,
范围:{
myParam:“=”
},
//模板:“”,
templateUrl:“/myTemplate.html”,
控制器:“myController”,
链接:功能(范围、IELENT、iAttrs、ngModel){
scope.myParam。。。
}
};
}
)) 抱歉,我应该提到我想要实现双向绑定,因此我使用的是NGModel。我认为如果父范围中有变量foo,那么“=”应该这样做,如果链接函数davidc中更新了变量foo,那么if应该更新,谢谢您的澄清。我对指令中双向绑定的理解是错误的。我创建了一个JSFIDLE来说明这一点,以防其他人有同样的问题: