复选框在 angular 4 中不起作用
Checkbox not working in angular 4
我可以使用 angular 添加下拉菜单
@Component({
selector: 'app-child-component',
template: `
<select id="select" formControlName = "day" >
<option *ngFor = "let g of dayList" [value] = "g"> {{g}}
</option>
</select>
`,
})
https://plnkr.co/edit/M88wFl?p=preview
但是我无法添加多个复选框
代码如下:
@Component({
selector: 'app-child-component',
template: `
Select days in a week :
<td class="even" *ngFor="let item of dayList;let i = index">
<input [(ngModel)]="item.check" type="checkbox" checked="item.check" formControlName = "selectedDays" (change)="updateChkbxArray(n.id, $event.checked, 'selectedDays')" value="n.id" > {{item}}
`,
})
https://plnkr.co/edit/gyAj6W?p=preview
你能帮我显示复选框集合吗,
不用绑定ngModel
和formControlName
,看这里
<input class="input" type="search" #agmSearch>
<p class="even" *ngFor="let item of dayList;let i = index">
<input type="checkbox" checked="item.check" (change)="updateChkbxArray(item, $event.checked, 'selectedDays')" value="n.id" > {{item}}
</p>
既然你已经使用了 input 元素,你可以在你的应用程序的根模块中包含来自 '@angular/forms' 的 "FormsModule" 并尝试。
尝试使用以下代码显示多选框以及如何在组件中进行多选
//HTML
<tr *ngFor="let address of addressList">
<td>
<input type="checkbox" value="{{address.id}}" name="{{address.email}}" (change) ="updateSelectedTimeslots($event)" />
</td>
</tr>
//成分
countries: any[] = [];
updateSelectedTimeslots(event) {
let this.countries: any[] = [];
if (event.target.checked) {
if (this.countries.indexOf((event.target.name)) < 0) {
this.countries.push(({'email':event.target.name}));
}
} else {
for(let i = 0; i < this.countries.length; i++) {
let country = this.countries[i];
if(country.email.toLowerCase().indexOf(event.target.name.toLowerCase()) == 0) {
this.countries.splice(this.countries.indexOf(({'email':event.target.name})), 1);
}
}
}
}
我可以使用 angular 添加下拉菜单
@Component({
selector: 'app-child-component',
template: `
<select id="select" formControlName = "day" >
<option *ngFor = "let g of dayList" [value] = "g"> {{g}}
</option>
</select>
`,
})
https://plnkr.co/edit/M88wFl?p=preview
但是我无法添加多个复选框
代码如下:
@Component({
selector: 'app-child-component',
template: `
Select days in a week :
<td class="even" *ngFor="let item of dayList;let i = index">
<input [(ngModel)]="item.check" type="checkbox" checked="item.check" formControlName = "selectedDays" (change)="updateChkbxArray(n.id, $event.checked, 'selectedDays')" value="n.id" > {{item}}
`,
})
https://plnkr.co/edit/gyAj6W?p=preview
你能帮我显示复选框集合吗,
不用绑定ngModel
和formControlName
,看这里
<input class="input" type="search" #agmSearch>
<p class="even" *ngFor="let item of dayList;let i = index">
<input type="checkbox" checked="item.check" (change)="updateChkbxArray(item, $event.checked, 'selectedDays')" value="n.id" > {{item}}
</p>
既然你已经使用了 input 元素,你可以在你的应用程序的根模块中包含来自 '@angular/forms' 的 "FormsModule" 并尝试。
尝试使用以下代码显示多选框以及如何在组件中进行多选
//HTML
<tr *ngFor="let address of addressList">
<td>
<input type="checkbox" value="{{address.id}}" name="{{address.email}}" (change) ="updateSelectedTimeslots($event)" />
</td>
</tr>
//成分
countries: any[] = [];
updateSelectedTimeslots(event) {
let this.countries: any[] = [];
if (event.target.checked) {
if (this.countries.indexOf((event.target.name)) < 0) {
this.countries.push(({'email':event.target.name}));
}
} else {
for(let i = 0; i < this.countries.length; i++) {
let country = this.countries[i];
if(country.email.toLowerCase().indexOf(event.target.name.toLowerCase()) == 0) {
this.countries.splice(this.countries.indexOf(({'email':event.target.name})), 1);
}
}
}
}