这两天来一直困扰着我,如何在ngModel
循环中为每个新的迭代创建一个新的*ngFor
?我的想法是加载一个问题列表,在每个问题中我有两个命题,下面是html
<div *ngFor="#qt of listQuestion">
<h3 class="uk-accordion-title" >{{qt.wordingQ}}</h3>
<div class="uk-accordion-content">
<input type="checkbox" id="0" [(ngModel)]="selected" (Change)="cbChange($event)"/>
<label for="0" class="inline-label" > <b>{{qt.lpo[0]}}</b></label><br>
<input type="checkbox" id="1" [(ngModel)]="selected_1" (Change)="cbChange_1($event)"/>
<label for="1" class="inline-label"><b>{{qt.lpo[1]}}</b></label><br>
</div></div>
只有当你在
listQuestion
中有一个问题时,如果有多个问题,我会检查第一个问题的proposition
(例如:lpo[0]
)之后,其他所有的第一个命题(首先是因为lpo = 0
的索引)都将被选中这是一张说明问题的图片:
有什么帮助吗?
最佳答案
很简单,在处理true or false
时,必须确保json包含适当的checkbox
字段。
我会用这种方式,
[(ngModel)]="qt.lpo[0]" //qt.lpo has to be true or false
// Answer1, Answer2 you can manage separately
[(ngModel)]="qt.lpo[1]" //qt.lpo creates new instance for each iteration of ngFor loop.
这样,它为每个问题创建不同的
ngFor
。但是您必须确保ngModel
字段应该包含true或false。关于html5 - 如何在Angular2中使用* ngFor动态生成ngModel?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37747064/