我刚尝试将ngMessages引入我的应用程序,该应用程序使用1.5中添加的组件。只要我在模板中包含对ngMessage的任何引用,我就会收到此错误消息:
错误:$ compile:ctreq缺少必需的控制器。
这是ngMessages的常见错误,正常的补救措施是 建议在这里: https://docs.angularjs.org/error/ $编译/ ctreq P0 = ngMessages&安培; P1 = ngMessage
但是,我使用的是组件,这是一种特殊类型的指令,这似乎不是组件的选项。
有没有人 ngMessages 在1.5中的组件中工作?
与指令一起使用的语法如下:
myApp.directive('myDirective', function() {
return {
require: 'ngModel',
...
}
}
组件文档:https://docs.angularjs.org/guide/component并未涵盖require
的等效文件。
答案 0 :(得分:1)
这可能会对你有所帮助。
<form name="userLoginForm" autocomplete="off">
<input type="text" minlength="10" maxlength="10" ng-pattern="/^[0-9]+$/" required ng-model="userData.mobileNumber" placeholder="Enter Mobile Number" class="form-control login-form-input" id="mobileNumber" name="mobileNumberInput"/>
<div ng-messages="userLoginForm.mobileNumberInput.$error" role="alert">
<div ng-message="required">
This field is required
</div>
<div ng-message="pattern">
Enter correct mobile number
</div>
<div ng-message="minlength, maxlength">
Your mobile number must 10 characters long</div>
</div>
</div>
答案 1 :(得分:1)
当你没有正确的div结构时会发生这种情况。 第一个div必须包含ng-messages,一个内部应该是ng-message。 来自文档:
<ANY **ng-messages**="expression" role="alert">
<ANY **ng-message**="stringValue">...</ANY>
</ANY>
在这种情况下,Angular的调试消息无益,导致更多混乱。