我们说我有一个表单名称" signupForm" 。当我在按钮上使用ng-disabled指令时(如果表单无效则禁用表单),我使用
ng-disabled="{{formName}}.$invalid">
(formName包含值 signupForm )
当我在浏览器中检查按钮时,上面的指令评估为ng-disabled="signupForm.$invalid">
。太棒了。问题是,当我尝试在ng-messages指令中使用相同的表达式时,例如:ng-messages ="{{formName}}.$error">
表达式是非插值的。因此,如果我在div上使用该指令并在浏览器中检查它,我将其视为:
<div ng-messages="{{formName}}.$error"></div>
而我希望它显示为<div ng-messages="signupForm.$error"></div>
。但这不会发生。
那么可以做些什么来使ng-messages指令插入表达式&amp;正确显示它?我用AngularJS 1.4.7测试了这个问题。 1.5.0-rc.1并且两者都存在问题。任何帮助表示赞赏。谢谢。
答案 0 :(得分:2)
ng-messages=this[formName].$error
答案 1 :(得分:0)
ng-messages doest不允许在属性值中插值 但我们可以传递表达式进行评估 html中的 此 代表当前范围,它还包含有关验证表单的所有信息。你可以登录并看到自己。
ng-messages="this[formName][fieldName].$error"
ng-messages="this[formName].$error"
会起作用,为我工作