这里发生了什么?无法找到指令'...'所需的控制器'ngModel'
这里是我的指令:
// template <input ng-model="theModel" />
app.directive('bseInput', function() {
return {
templateUrl: "/Scripts/bse/bse-inputs.html",
scope:
{
theModel: '=',
},
compile: function compile(tElement, tAttrs, transclude) {
// do stuff
}
};
});
app.directive('submitRequired', function (objSvc) {
return {
require: 'ngModel',
link: function (scope, elm, attrs, ctrl) {
// do something
}
};
});
这里是使用该指令的例子:
<input bse-input submit-required="true" the-model="someModel"></input>
下面是实际的错误文本:
错误:[$编译: ctreq]找不到指令'submitRequired'所需的控制器'ngModel'! http://errors.angularjs.org/1.2.2/ $编译/ ctreq?P0 = ngModel & P1 = submitRequired 在http://www.domain.ca/Scripts/angular/angular.js:78:12 在getControllers(http://www.domain.ca/Scripts/angular/angular.js:5972:19) 在nodeLinkFn(http://www.domain.ca/Scripts/angular/angular.js:6139:35) 在compositeLinkFn(http://www.domain.ca/Scripts/angular/angular.js:5550:15) 在nodeLinkFn(http://www.domain.ca/Scripts/angular/angular.js:6132:24) 在compositeLinkFn(http://www.domain.ca/Scripts/angular/angular.js:5550:15) 在publicLinkFn 。。。(http://www.domain.ca/Scripts/angular/angular.js:5458:30) 在http://www.domain.ca/Scripts/angular/angular.js:1299:27 在范围$ get.Scope $的eval(http://www.domain.ca/Scripts/angular/angular.js:11634:28) 在范围$ get.Scope $申请(http://www.domain.ca/Scripts/angular/angular.js:11734:23)angular.js:9159 (匿名函数)angular.js:9159 $得到angular.js:6751 nodeLinkFn angular.js:6141个 compositeLinkFn angular.js:5550 nodeLinkFn angular.js:6132 compositeLinkFn angular.js:5550 publicLinkFn角。 JS:5458 (匿名函数)angular.js:1299 $ get.Scope $ EVAL angular.js:11634 $ get.Scope $适用angular.js:11734 (匿名函数)angular.js:1297 invoke angular.js:3633 doBootstrap angular.js:1295 bootstrap angular.js:1309 angularInit angular.js:1258 (匿名函数)angular.js:20210 个触发angular.js:2315 (匿名功能)angular.js:2579个 的forEach angular.js:300个 事件处理器angular.js:2578ar.js:7874
模型和模型是故意的,因为想要将ngModel传递给具有双向数据绑定的指令。 –
如果您使用require,则意味着:**其他指令可以将此控制器传递给它们**。因此,属性require与其他指令不相关。我的意思是,如果你将设置'require:'ngModel'',那么HTML属性必须包含ng-model。链接函数,然后会在'ctrl'变量中接收该控制器,只需要 –
我不明白最后一条评论。 '需要:'ngModel'是否意味着我们传递了一个ngModel控制器? –