Que se passe t-il ici?
Voici ma directive:
app.directive('submitRequired', function (objSvc) {
return {
require: 'ngModel',
link: function (scope, elm, attrs, ctrl) {
// do something
}
};
});
Voici un exemple de la directive en cours d'utilisation:
<input submit-required="true"></input>
Voici le texte d'erreur réel:
Error: [$compile:ctreq] Controller 'ngModel', required by directive 'submitRequired', can't be found!
http://errors.angularjs.org/1.2.2/$compile/ctreq?p0=ngModel&p1=submitRequired
at http://www.domain.ca/Scripts/angular/angular.js:78:12
at getControllers (http://www.domain.ca/Scripts/angular/angular.js:5972:19)
at nodeLinkFn (http://www.domain.ca/Scripts/angular/angular.js:6139:35)
at compositeLinkFn (http://www.domain.ca/Scripts/angular/angular.js:5550:15)
at nodeLinkFn (http://www.domain.ca/Scripts/angular/angular.js:6132:24)
at compositeLinkFn (http://www.domain.ca/Scripts/angular/angular.js:5550:15)
at publicLinkFn (http://www.domain.ca/Scripts/angular/angular.js:5458:30)
at http://www.domain.ca/Scripts/angular/angular.js:1299:27
at Scope.$get.Scope.$eval (http://www.domain.ca/Scripts/angular/angular.js:11634:28)
at Scope.$get.Scope.$apply (http://www.domain.ca/Scripts/angular/angular.js:11734:23) <input submit-required="true"> angular.js:9159
(anonymous function) angular.js:9159
$get angular.js:6751
nodeLinkFn angular.js:6141
compositeLinkFn angular.js:5550
nodeLinkFn angular.js:6132
compositeLinkFn angular.js:5550
publicLinkFn angular.js:5458
(anonymous function) angular.js:1299
$get.Scope.$eval angular.js:11634
$get.Scope.$apply angular.js:11734
(anonymous function) angular.js:1297
invoke angular.js:3633
doBootstrap angular.js:1295
bootstrap angular.js:1309
angularInit angular.js:1258
(anonymous function) angular.js:20210
trigger angular.js:2315
(anonymous function) angular.js:2579
forEach angular.js:300
eventHandler angular.js:2578ar.js:7874
ng-models
et obtenu cette erreur.ng-model="RootObject[alias]"
fonctionnera si la session aura `$ scope.RootObject = {}; $ scope.alias = "FirstName" `... au lieu de l'alias, même forEach pourrait fournir le nom dynamiqueUne solution possible à ce problème est que l'
ng-model
attribut est nécessaire pour utiliser cette directive.Par conséquent, l'ajout de l'attribut 'ng-model' peut résoudre le problème.
la source
Vous pouvez également supprimer la ligne
si vous n'en avez pas besoin
ngModel
dans cette directive. La suppressionngModel
vous permettra de créer une directive sans cettengModel
erreur.la source
J'ai rencontré la même erreur, dans mon cas, j'ai mal orthographié la directive ng-model quelque chose comme "ng-moel"
Mauvais: ng-moel = "user.name" Bon: ng-model = "user.name"
la source