我有一个实体:
export class Item {
name: string;
value: number;
}
和模拟类:
export const ITEMS: Item[] = [
{
name: 'Локальный сервер',
value: 1
},
{
name: 'Удаленный сервер',
value: 2
}
];
在我的模板中:
<li class="list-group-item" *ngFor="let item of itemsList">
<input type="radio" [(ngModel)]="radioSelected" name="list_name" value="{{item.value}}" (change)="onItemChange(item)"/> {{item.name}}
</li>
在我的控制器中:
onItemChange(item) {
this.getSelecteditem();
}
getSelecteditem() {
this.radioSel = ITEMS.find(Item => Item.value === parseInt(this.radioSelected.toString(), 10));
}
我不喜欢这部分: parseInt(this.radioSelected.toString(),但只有 this.radioSelected 而没有 parseInt 和< em> .toString 不起作用,为什么呢?我想传递并获取一个数字,而不是一个字符串!我该怎么办?
答案 0 :(得分:3)
您可以尝试传递所选项目的值吗?
onItemChange(item: ITEM) {
this.getSelecteditem(item); // pass in the item here
}
然后根据该商品的值查找该商品:
getSelecteditem(item: ITEM) {
this.radioSel = ITEMS.find(Item => Item.value === item.value); // compare against the param passed in
}
我也建议您像以前一样使用键入内容,这将更加轻松有趣:)