Was ist hier los?Controller 'ngModel', benötigt von Direktive '...', kann nicht gefunden werden
Hier meine Richtlinien sind:
// 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
}
};
});
Hier ist ein Beispiel der Richtlinie im Einsatz:
<input bse-input submit-required="true" the-model="someModel"></input>
Hier ist der eigentliche Fehlertext:
Fehler: [$ Kompilierung: ctreq] Controller 'ngModel', benötigt durch Direktive 'submitRequired', kann nicht gefunden werden! http://errors.angularjs.org/1.2.2/ $ kompilieren/ctreq? P0 = ngModel & p1 = submitRequired bei http://www.domain.ca/Scripts/angular/angular.js:78:12 bei getControllers (http://www.domain.ca/Scripts/angular/angular.js:5972:19) bei nodeLinkFn (http://www.domain.ca/Scripts/angular/angular.js:6139:35) bei compositeLinkFn (http://www.domain.ca/Scripts/angular/angular.js:5550:15) bei nodeLinkFn (http://www.domain.ca/Scripts/angular/angular.js:6132:24) bei compositeLinkFn (http://www.domain.ca/Scripts/angular/angular.js:5550:15) bei publicLinkFn .... (http://www.domain.ca/Scripts/angular/angular.js:5458:30) bei http://www.domain.ca/Scripts/angular/angular.js:1299:27 bei Scope $ get.Scope $ eval (http://www.domain.ca/Scripts/angular/angular.js:11634:28) bei Scope $ get.Scope gelten $ (http://www.domain.ca/Scripts/angular/angular.js:11734:23) Angularjs: 9159 (anonyme Funktion) Angularjs: 9159 $ erhalten Angularjs: 6751 nodeLinkFn Angularjs: 6141 compositeLinkFn Angularjs: 5550 nodeLinkFn Angularjs: 6132 compositeLinkFn Angularjs: 5550 publicLinkFn eckig. js: 5458 (anonyme Funktion) Angularjs. 1299 $ get.Scope $ eval Angularjs: 11634 $ get.Scope $ gelten Angularjs. 11734 (anonyme Funktion) Angularjs: 1297 Rufen Sie angular.js: 3633 doBootstrap angular.js: 1295 bootstrap angular.js: 1309 angularInit angular.js: 1258 (anonyme Funktion) angular.js: 20210 Trigger Angularjs: 2315 (anonym Funktion) Angularjs: 2579 forEach Angularjs: 300 Angularjs Eventhandler: 2578ar.js: 7874
the-model und theModel waren absichtlich, weil sie ngModel mit zweiseitiger Datenbindung an die Direktive übergeben wollten. –
Wenn Sie die Anforderung verwenden, bedeutet dies: ** Bei anderen Richtlinien kann dieser Controller an diese weitergegeben werden **. Das Attribut required bezieht sich also auf die andere Direktive und nicht auf das Modell. Ich meine, wenn Sie 'require: 'ngModel' einstellen wollen, dann muss das HTML-Attribut containing-Modell haben. Die Link-Funktion, wird dann in der 'ctrl' -Variable diesen Controller empfangen, nur erforderlich –
Ich verstehe diesen letzten Kommentar nicht. Benötigt ''ngModel'', dass wir einen ngModel Controller übergeben? –