作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一组 Angular 形式的动态复选框:
<div class="form-check" *ngFor="let topic of topics">
<input class="form-check-input" (change)="onChange(f)" #f type="checkbox" [value]="topic.name" name="topicgroup">
<label class="form-check-label" style="font-weight: normal">
{{topic.name}}
</label>
</div>
Topics: string[] = ['Topic1', 'Topic2', 'Topic3', 'Topic4', 'Topic5'];
selectedTopics: string[] = ['Topic1', 'Topic2'];
onChange(f) {
if (this.selectedTopics.indexOf(f.value) == -1) {
this.selectedTopics.push(f.value);
} else {
this.selectedTopics.splice(this.selectedTopics.indexOf(f.value), 1);
}
最佳答案
首先,您正在使用 topic.name
根据您的数组,它将只是主题。
二、添加[checked]
属性将它们标记为选中或未选中,如下所示。
<div class="form-check" *ngFor="let topic of topics">
<input class="form-check-input" [checked]="topic in selectedTopics" (change)="onChange(topic)" #f type="checkbox" [value]="topic" name="topicgroup">
<label class="form-check-label" style="font-weight: normal">
{{topic}}
</label>
</div>
function onChange(topic)
将如下
onChange(topic: string) {
let index = this.selectedTopics.indexOf(topic);
if (index == -1) {
this.selectedTopics.push(value);
} else {
this.selectedTopics.splice(index, 1);
}
}
[checked]="topic in selectedTopics"
与
[checked] = isSelected(topic)
isSelected(topic){
return selectedTopics.indexOf(topic) >= 0;
}
关于Angular 5 显示基于数组选中的复选框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48848203/
我是一名优秀的程序员,十分优秀!