2014-02-16 90 views
72

這裏發生了什麼?無法找到指令'...'所需的控制器'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 

回答

113

Angular NgModelController,您應該提供<input所需的控制器ngModel

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

完美。我很感激!我會將此標記爲答案。我有一個後續問題。我應該發佈另一個問題或更改我的原始? –

+0

這裏是後續:http://stackoverflow.com/questions/21807929/controller-ngmodel-required-by-directive-cant-be-found –

+2

我錯誤地鍵入了'ng模型'並得到這個錯誤。 – chovy

5

一個可能的解決這個問題是ng-model屬性需要使用該指令。

因此,在'ng-model'屬性中添加可以解決問題。

<input submit-required="true" ng-model="user.Name"></input> 
相關問題