您好我按照jonhpapa规则使用angularjs(1.5.0)开发应用程序。 我也使用角度材料1.0.6。
添加模块'ngMessages'时遇到问题。
我安装了lib angular-messages 1.5.1。
当我添加要使用的模块时,我在控制台上出现以下错误。
Error: [$compile:ctreq] Controller 'ngMessages', required by directive 'ngMessage', can't be found!
http://errors.angularjs.org/1.5.0/$compile/ctreq?p0=ngMessages&p1=ngMessage
at http://localhost:3000/bower_components/angular/angular.js:68:12
at getControllers (http://localhost:3000/bower_components/angular/angular.js:8817:19)
at nodeLinkFn (http://localhost:3000/bower_components/angular/angular.js:8982:33)
at compositeLinkFn (http://localhost:3000/bower_components/angular/angular.js:8226:13)
at nodeLinkFn (http://localhost:3000/bower_components/angular/angular.js:8973:24)
at compositeLinkFn (http://localhost:3000/bower_components/angular/angular.js:8226:13)
at compositeLinkFn (http://localhost:3000/bower_components/angular/angular.js:8229:13)
at compositeLinkFn (http://localhost:3000/bower_components/angular/angular.js:8229:13)
at compositeLinkFn (http://localhost:3000/bower_components/angular/angular.js:8229:13)
at compositeLinkFn (http://localhost:3000/bower_components/angular/angular.js:8229:13) <div data-ui-view="" class="ng-scope">
此时此视图没有控制器。该视图包含:
<md-input-container>
<label>First name</label>
<input name="firstName"
ng-model="vm.user.firstName"
md-maxlength="30"
required>
<div ng-messages="vm.user.firstName.$error">
<div ng-message="md-maxlength">Field has to be less than 30 characters long.</div>
<div ng-message="required">Field required</div>
</div>
</md-input-container>
提前致谢,问候。
答案 0 :(得分:7)
要解决此问题,请更换以下内容:
ng-message by ng-messages
这是输入错误。
答案 1 :(得分:5)
您的ng-messages
需要包含表单的名称,然后是输入字段的名称。
所以:formName.fieldName.$error
然后ng-message
需要包含验证规则(就像你一样)。
如果您的md-input-container
周围没有表单,则需要添加一个表单。
表单名称可以是您想要的任何内容。
类似的东西:
<form name="vm.details">
<md-input-container>
<label>First name</label>
<input name="firstName"
ng-model="vm.user.firstName"
md-maxlength="30"
required>
<div ng-messages="vm.details.firstName.$error">
<div ng-message="md-maxlength">Field has to be less than 30 characters long.</div>
<div ng-message="required">Field required</div>
</div>
</md-input-container>
</form>