语法错误:ng messages='{{字段}}$错误'
Syntax error : ng-messages='{{field}}.$error'
我得到以下错误
语法错误:表达式〔{{field}}.$Error〕第2列的令牌"{"无效键,从〔{field}}.$Error〕开始。
当我尝试运行以下代码(表单字段.html)时
<div class='row form-group' ng-form="{{field}}" ng-class="{ 'has-error': {{field}}.$dirty && {{field}}.$invalid }">
<label class='col-sm-2 control-label'> {{ field | labelCase }} <span ng-if='required'>*</span></label>
<div class='col-sm-6' ng-switch='required'>
<input ng-switch-when='true' ng-model='record[field][0]' type='{{record[field][1]}}' class='form-control' required ng-change='update()' ng-blur='blurUpdate()' />
<div class='input-group' ng-switch-default>
<input ng-model='record[field][0]' type='{{record[field][1]}}' class='form-control' ng-change='update()' ng-blur='blurUpdate()' />
<span class='input-group-btn'>
<button class='btn btn-default' ng-click='remove(field)'><span class='glyphicon glyphicon-remove-circle'></span></button>
</span>
</div>
</div>
***PROBLEM CODE LINE BELOW***
<div class='col-sm-4 has-error' ng-show='{{field}}.$dirty && {{field}}.$invalid' ng-messages='{{field}}.$error'>
<p class='control-label' ng-message='required'> {{ field | labelCase }} is required. </p>
<p class='control-label' ng-repeat='(k, v) in types' ng-message='{{k}}'> {{ field | labelCase }} {{v[1]}}</p>
</div>
</div>
这是用以下代码替换指令的代码:
<form-field record='contact' field='firstName' live='false' required='true'></form-field>
问题显然是Angular不喜欢ng-messages={{field}}.$error
,我可以通过将其更改为来消除错误
ng-messages='field.$error'
但是随后不会显示下一段中的错误消息。此代码来自2014年9月发布的TutsPlus使用Angularjs从头开始构建Web应用程序。
出现此错误的原因是您可能使用的是angular版本1.4.1;如果您按照教程使用bower-installangular messages,那么您也安装了angular message1.4.1。因为在angular messages 1.4.1中,ng messages不再正确解释其属性值(即angular.js github上的问题#111616)
我从@gkalpak那里学到的解决方案是:
<div class='col-sm-4 has-error' ng-show='{{field}}.$dirty && {{field}}.$invalid' ng-messages="this.$eval(field)['$error']">
删除ng-show
和ng-messages
中的双大括号,您不需要它们,因为它们都需要一个表达式。
这应该有效:
<div class='col-sm-4 has-error'
ng-show='field.$dirty && field.$invalid'
ng-messages='field.$error'>
相关文章:
- NodeJS用Multer上传图片;错误:意外字段“”;
- Jquery 验证插件 - 字段仍然产生错误
- 我如何让我的 var 错误消息输出是使用字段还是字段,具体取决于留空的字段数
- 在应用 jQuery.Selected 时,使用 jQuery.Validate 来验证选择字段时,暴露错误
- mongodb mongodump json日期字段解析错误
- jQuery自定义验证只显示最后一个字段的错误
- "未捕获的类型错误:未定义的不是函数“;当向输入字段添加值时
- 将字符串返回到类型为“0”的输出字段;数字“;针对用户错误javascript
- 如何在使用Knex.JS添加字段时捕捉错误
- 应用于 html5 数值字段的 javascript 的错误行为
- JavaScript cookie 输入字段字符串显示错误
- 用于显示字段的工具提示和显示 Jquery 验证中的错误的工具提示器
- 使用 multer 上传文件,错误:意外字段
- Javascript Form Validation.如何使用 OnFocus 在输入字段上时消除错误
- 自动递增序列字段错误 - MongoDB,Mongoose
- 模态窗口(弹出窗口)警报在使用 angularJs 的错误字段上显示
- Javascript SQL请求where子句中出现错误字段错误
- GraphQL交叉引用抛出错误:字段类型必须是输出类型,但得到:[object object]
- 删除:focus/ control生成错误字段上的输入文本
- GraphQL错误字段必须是一个以字段名作为键的对象,或者是一个返回这样一个对象的函数