Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Controller 'ngModel', required by directive '...', can't be found

What's going on here?

Here is my directive:

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

Here is an example of the directive in use:

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

Here is the actual error text:

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 
like image 741
Shaun Luttin Avatar asked Feb 16 '14 05:02

Shaun Luttin


People also ask

What is [( ngModel )] in angular?

The ngModel directive is a directive that is used to bind the values of the HTML controls (input, select, and textarea) or any custom form controls, and stores the required user value in a variable and we can use that variable whenever we require that value. It also is used during form validations.

Does Ng change require NG-model?

The ng-change directive requires a ng-model directive to be present. The ng-change directive from AngularJS will not override the element's original onchange event, both the ng-change expression and the original onchange event will be executed.

What is Ng-controller in HTML?

Definition and Usage. The ng-controller directive adds a controller to your application. In the controller you can write code, and make functions and variables, which will be parts of an object, available inside the current HTML element. In AngularJS this object is called a scope.


1 Answers

As described here: Angular NgModelController, you should provide the <input with the required controller ngModel

<input submit-required="true" ng-model="user.Name"></input> 
like image 131
Radim Köhler Avatar answered Oct 03 '22 22:10

Radim Köhler