javascript - ng-if 内的 ng-repeat $index 插值

标签 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>

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

最佳答案

您使用 ng-if 重复的元素使用的表达式不会按照您的预期执行。

而不是:

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

可能应该是:

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

在前者中,标记会尝试访问名称与 childForm_[$index] 完全相同的属性。

关于javascript - ng-if 内的 ng-repeat $index 插值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41841605/

相关文章:

HTML/CSS - 删除/重新着色下拉选项的边框

javascript - 当我拖动时,dragend、dragenter 和 dragleave 会立即发射

angularjs - 如何使用 $index 更改 ng-repeat 中的类?

angularjs - 如何扩展 ui bootstrap 指令

javascript - 如何从外部URL获取JSON数据

html - 如何在 Bootstrap 中从左向右移动选择框下拉箭头

javascript - .data() 处的 D3 新数据使 svg 重绘而不是更新节点位置

javascript - 为 input[number] 中的箭头设置默认值

javascript - Iscroll 导致滚动父项内的链接在触摸设备上变得不可点击

javascript - 如何在 javascript 中使用 "re-enable"特殊字符序列?