This question already has answers here:
Why ngIf has higher priority than {{ }} (interpolate)?
(2个答案)
4年前关闭。
我正在使用AngularJS在前端编写一个应用程序,该应用程序使用指令动态创建表单元素,因此每个表单元素的名称都不为人所知。
我目前正在尝试对每个元素实施表单验证,但这需要通过插值来确定每个表单元素的名称。这是我尝试做的事情:
但是,这给了我以下错误:
由于似乎不允许这样做,如果还没有回答所需的表单元素,还有其他方法可以显示消息吗?
我能够按如下所示插值ng-class内部每个表单元素的名称,因此我认为它也适用于ng-if。
(2个答案)
4年前关闭。
我正在使用AngularJS在前端编写一个应用程序,该应用程序使用指令动态创建表单元素,因此每个表单元素的名称都不为人所知。
我目前正在尝试对每个元素实施表单验证,但这需要通过插值来确定每个表单元素的名称。这是我尝试做的事情:
<span class="error-msg" data-ng-if="form.dateInput{{ question.questionAnswerId }}.$error.required && submitted">
Required
</span>
但是,这给了我以下错误:
Syntax Error: Token '{' is an unexpected token at column 15 of the expression [form.dateInput{{ question.questionAnswerId }}.$error.required && submitted] starting at [{{ question.questionAnswerId }}.$error.required && submitted].
由于似乎不允许这样做,如果还没有回答所需的表单元素,还有其他方法可以显示消息吗?
我能够按如下所示插值ng-class内部每个表单元素的名称,因此我认为它也适用于ng-if。
ng-class="{ 'has-error' : form.dateInput{{ question.questionAnswerId }}.$invalid && submitted }"
最佳答案
您不需要插值,只需直接访问值即可:
data-ng-if="form.dateInput[question.questionAnswerId].$error.required && submitted"