ng-if中的ng-repeat $ index插值

时间:2017-01-25 00:47:47

标签: javascript html angularjs angularjs-ng-repeat angular-ng-if

在我的应用程序中,我有嵌套表单,一些使用固定名称,一些使用ng-repeat索引生成名称:

<form name="rootForm"> 
    <div ng-repeat="child in childForms">
        <ng-form name="childForm_{{$index}}">
            <!-- form content-->
        </ng-form>
    </div>
    <ng-form name="fixedName">
        <!-- form content-->
    </ng-form>
    <ng-form name="anotherFixedName">
        <!-- form content-->
    </ng-form>
</form>

在同一个html文件中,我想通过ng-if语句访问那些表单$ valid属性。那可能吗? 我正在尝试:

<div>
    <div ng-repeat="child in childForms">
        <div ng-if="rootForm.childForm_[$index].$valid">
            Child form {{index}} is valid! 
        </div>
    </div>
    <div ng-if="rootForm.fixedName.$valid"> Valid! </div>
    <div ng-if="rootForm.anotherFixedName.$valid"> Valid! </div>
</div>

它适用于具有固定名称的表单。但对于具有生成名称的子表单,它不会。我做错了什么?

2 个答案:

答案 0 :(得分:1)

使用ng-if的重复元素使用的表达式不会像您期望的那样。

而不是:

<div ng-if="rootForm.childForm_[$index].$valid">

应该是:

<div ng-if="rootForm['childForm_' + $index].$valid">

在前者中,标记一直在尝试访问名为childForm_[$index]的属性。

答案 1 :(得分:1)

尝试:

<div ng-if="rootForm['childForm_' + $index].$valid">