如何在 ng-messages 指令中插入表达式?
How to interpolate expressions in ng-messages directive?
假设我有一个表单名称 "signupForm"。当我在按钮上使用 ng-disabled 指令时(在无效的情况下禁用表单),我使用
ng-disabled="{{formName}}.$invalid">
(表单名称包含值 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 指令插入表达式并正确显示它呢?我已经用 AngularJS 1.4.7 & 1.5.0-rc.1 测试了这个问题,并且它们都存在这个问题。任何帮助表示赞赏。谢谢。
ng-messages=this[formName].$error
ng-messages 不允许在属性值中进行插值。
但我们可以传递要评估的表达式。
this in html 表示当前范围,它也包含有关带有验证的表单的所有信息。您可以登录并查看自己。
ng-messages="this[formName][fieldName].$error"
ng-messages="this[formName].$error"
会用,对我有用
假设我有一个表单名称 "signupForm"。当我在按钮上使用 ng-disabled 指令时(在无效的情况下禁用表单),我使用
ng-disabled="{{formName}}.$invalid">
(表单名称包含值 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 指令插入表达式并正确显示它呢?我已经用 AngularJS 1.4.7 & 1.5.0-rc.1 测试了这个问题,并且它们都存在这个问题。任何帮助表示赞赏。谢谢。
ng-messages=this[formName].$error
ng-messages 不允许在属性值中进行插值。
但我们可以传递要评估的表达式。
this in html 表示当前范围,它也包含有关带有验证的表单的所有信息。您可以登录并查看自己。
ng-messages="this[formName][fieldName].$error"
ng-messages="this[formName].$error"
会用,对我有用