如何在ng-messages指令中插入表达式?

时间:2016-01-20 12:26:52

标签: angularjs ng-messages

我们说我有一个表单名称" 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并且两者都存在问题。任何帮助表示赞赏。谢谢。

2 个答案:

答案 0 :(得分:2)

ng-messages=this[formName].$error

答案 1 :(得分:0)

ng-messages doest不允许在属性值中插值 但我们可以传递表达式进行评估 html中的 代表当前范围,它还包含有关验证表单的所有信息。你可以登录并看到自己。

ng-messages="this[formName][fieldName].$error"   
ng-messages="this[formName].$error"   

会起作用,为我工作