2 回答

TA贡献1828条经验 获得超6个赞
您必须使用一个对象将“已检查”属性链接到数组。
此外,如果条件为假,您应该使用<ng-container>它以便不生成任何 HTML。
<!-- HTML -->
<ng-container *ngFor="let item of some">
<div *ngIf="item.condition">
{{item.name}}
</div>
</ng-container>
<select [(ngModel)]="myFakeForm.check">
<option [value]="true">true</option>
<option [value]="false">false</option>
</select>
// TS
public myFakeForm = { check: true }
public some = [
{name: 'ABC', condition: true},
{name: 'def', condition: this.myFakeForm.check},
{name: 'GHI', condition: true}
];

TA贡献2019条经验 获得超9个赞
您应该对模板中解析的字段使用公共访问权限
this.check
作为值而不是对组件字段的引用传递 - 这就是它在下拉选择中没有改变的原因。
所以为了解决这个问题,你必须以某种方式通过引用传递“检查”标志。例如,您可以将检查从布尔值更改为某个对象: check = {value: boolean = true};
或者考虑更通用的方法:)
添加回答
举报