programing

지시문 '...'에 필요한 컨트롤러 'ngModel'을 찾을 수 없습니다.

easyjava 2023. 3. 25. 14:06
반응형

지시문 '...'에 필요한 컨트롤러 'ngModel'을 찾을 수 없습니다.

이게 무슨 일이야?

제 지시는 다음과 같습니다.

app.directive('submitRequired', function (objSvc) {
    return {
        require: 'ngModel',
        link: function (scope, elm, attrs, ctrl) {

          // do something
        }
    };
});

다음으로 사용 중인 지시어의 예를 제시하겠습니다.

<input submit-required="true"></input>

다음은 실제 오류 텍스트입니다.

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

여기서 설명한 바와 같이 Angular NgModel Controller는<input필요한 컨트롤러 사용ngModel

<input submit-required="true" ng-model="user.Name"></input>

이 문제에 대한 가능한 해결책 중 하나는ng-model이 디렉티브를 사용하려면 속성이 필요합니다.

따라서 'ng-model' 속성을 추가하면 문제를 해결할 수 있습니다.

<input submit-required="true" ng-model="user.Name"></input>

선을 제거할 수도 있습니다.

  require: 'ngModel',

필요없으면ngModel를 참조해 주세요.삭제 중ngModel그런 것 없이 지시를 내릴 수 있습니다.ngModel에러입니다.

같은 오류에 직면했는데, 내 경우 ng-model 지시어를 잘못 입력해서 "ng-moel"과 같은 오류가 발생했습니다.

잘못된 항목: ng-moel="user.name" 오른쪽 항목: ng-model="user.name"

여기에 이미지 설명 입력

언급URL : https://stackoverflow.com/questions/21807834/controller-ngmodel-required-by-directive-cant-be-found

반응형