Was ist denn hier los?
Hier ist meine Anweisung:
app.directive('submitRequired', function (objSvc) {
return {
require: 'ngModel',
link: function (scope, elm, attrs, ctrl) {
// do something
}
};
});
Hier ist ein Beispiel für die verwendete Richtlinie:
<input submit-required="true"></input>
Hier ist der eigentliche Fehlertext:
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
und diesen Fehler erhalten.ng-model="RootObject[alias]"
funktioniert, wenn die Sitzung `$ scope.RootObject = {} hat; $ scope.alias = "Vorname" `... anstelle von Alias, auch für jeden könnte der dynamische Name angegeben werdenEine mögliche Lösung für dieses Problem ist, dass ein
ng-model
Attribut erforderlich ist, um diese Anweisung zu verwenden.Daher kann das Problem durch Hinzufügen des Attributs 'ng-model' behoben werden.
quelle
Sie können die Linie auch entfernen
wenn Sie
ngModel
in dieser Richtlinie nicht benötigen . Durch EntfernenngModel
können Sie eine Anweisung ohne diesenngModel
Fehler erstellen.quelle
Ich hatte den gleichen Fehler, in meinem Fall habe ich die ng-model-Direktive so etwas wie "ng-moel" falsch geschrieben.
Falsch: ng-moel = "user.name" Richtig: ng-model = "user.name"
quelle