Что здесь происходит?Контроллер '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] Контроллер 'ngModel', требуемый директивой 'submitRequired', не может быть найден! http://errors.angularjs.org/1.2.2/ $ компилировать/ctreq? Р0 = ngModel & р1 = 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 в Scope $ get.Scope $ Eval (http://www.domain.ca/Scripts/angular/angular.js:11634:28) на Scope $ 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 угловой. ЯШ: 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 EventHandler angular.js: 2578ar.js: 7874
the-model и theModel были намеренно из-за необходимости передать ngModel в директиву с двусторонней привязкой данных. –
, если вы используете требование, это означает: ** Другие директивы могут передавать этот контроллер **. поэтому требуемый атрибут связан с другой директивой, а не с моделью. Я имею в виду, если у вас будет параметр 'require: 'ngModel', тогда атрибут HTML должен быть contanin ng-model. Функция ссылки, затем в переменной 'ctrl' получит тот контроллер, который требуется только –
Я не понимаю, что последний комментарий. «Require»: «ngModel» означает, что мы передаем контроллер ngModel? –