Câu hỏi Không thể tìm thấy trình điều khiển 'ngModel' theo yêu cầu của chỉ thị '...'


Những gì đang xảy ra ở đây?

Đây là chỉ thị của tôi:

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

          // do something
        }
    };
});

Dưới đây là ví dụ về chỉ thị được sử dụng:

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

Đây là văn bản lỗi thực tế:

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

76
2018-02-16 05:49


gốc




Các câu trả lời:


Như được mô tả ở đây: Góc NgModelController, bạn nên cung cấp <input với bộ điều khiển yêu cầu ngModel

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

117
2018-02-16 05:54



Hoàn hảo. Tôi trân trọng điều đó! Tôi sẽ đánh dấu đây là câu trả lời. Tôi có một câu hỏi tiếp theo. Tôi có nên đăng câu hỏi khác hoặc thay đổi bản gốc của mình không? - Shaun Luttin
Đây là theo dõi: stackoverflow.com/questions/21807929/… - Shaun Luttin
tôi đã gõ nhầm ng-models và có lỗi này. - chovy


Một giải pháp khả thi cho vấn đề này là ng-model thuộc tính được yêu cầu để sử dụng chỉ thị đó.

Do đó việc thêm thuộc tính 'ng-model' có thể giải quyết vấn đề.

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

6
2018-01-18 03:55





Bạn cũng có thể xóa dòng

  require: 'ngModel',

nếu bạn không cần ngModel trong chỉ thị này. Đang xóa ngModel sẽ cho phép bạn thực hiện một chỉ thị mà không cóngModel lỗi.


0
2017-08-09 17:36