Angular 有约束力的问题

Angular 有约束力的问题,angular,Angular,我有一个click事件,当ngIf=true时,我将在其中显示一些块。负责单击事件的按钮位于ngFor循环中,因为需要为每行显示该按钮。当我点击这个按钮时,所有的行都会随着块一起折叠。如何写入已写入以仅打开单击的行块,请提供帮助 我试图检查不起作用的索引 <div class="fatca-collapse"> <div class="fatca-head-row"> <span click = (allOpen)> + </span> <s

我有一个click事件,当
ngIf=true
时,我将在其中显示一些块。负责单击事件的按钮位于
ngFor
循环中,因为需要为每行显示该按钮。当我点击这个按钮时,所有的行都会随着块一起折叠。如何写入已写入以仅打开单击的行块,请提供帮助

我试图检查不起作用的索引

<div class="fatca-collapse">
<div class="fatca-head-row">
<span click = (allOpen)> + </span>
<span>one</span>
<span>one</span>
</div>
<div class="fatca-body-row" *ngFor ="let data of gridViewData" >
<div class="fatca-body-heading">
    <span (click)="segmentShow = !segmentShow">+</span>
    <span>{{ data.taxResCrty.codeValueDispVal }}</span>
    <span>{{ data.taxResCrty.codeValueDispVal }}</span>
</div>
<div class="fatca-body-text" *ngIf = "segmentShow">
    <span>{{data.reviewStsDt}}</span>
    <span>{{data.taxResStsUpdBy}}</span>
</div>    
</div>
</div>

+ 
一
一
+
{{data.taxrestry.codeValueDispVal}}
{{data.taxrestry.codeValueDispVal}}
{{data.reviewStsDt}
{{data.taxerstupdby}

在这种情况下,segmentShow不能是一个布尔值,而是一个布尔值数组,每个数据对应一个布尔值,因此您可以用下一种方法更改模板:

<div class="fatca-body-row" *ngFor ="let data of gridViewData; let index = index" >
<div class="fatca-body-heading">
    <span (click)="segmentShow[index] = !segmentShow[index]">+</span>
    <span>{{ data.taxResCrty.codeValueDispVal }}</span>
    <span>{{ data.taxResCrty.codeValueDispVal }}</span>
</div>
<div class="fatca-body-text" *ngIf = "segmentShow[index]">
    <span>{{data.reviewStsDt}}</span>
    <span>{{data.taxResStsUpdBy}}</span>
</div>    

项目的数量取决于gridViewData的项目数量,因此如果它有8个元素,segmentShow必须将相同的8个元素初始化为false。

这看起来是错误的:
click=(allOpen)
我想你要做的是
(click)=“allOpen()”
谢谢,这已经被改变了。我已经实现了上面的代码,但看到下面的错误,我甚至在索引中添加了+1,但它不起作用。Error=“无法读取未定义的属性“0”。您能检查一下吗?我已将“let index=index”更改为“let index of index”并重试,显示错误为“无法读取未定义的属性“[object object]”。您是否已将segmentShow从布尔值更改为布尔值数组并初始化?我将用exampleSectionShow=[false,false,false]编辑答案,这是动态数据。我们不确定数据将包含哪些值。所以我无法在数组中写入特定数量的false。你能检查一下吗?这样的话,一旦你得到了数据,你就可以在segmentShow中对每一个数据进行推送。如果您的数据每个元素都有id,那么还有另一种方法,如果是您的情况,请告诉我
segmentShow = [false, false, false]