根据用户输入,文本框应显示在屏幕上。例如,如果用户输入“ 2是2”,则应显示两个文本框以获取用户名,而应显示一个文本框以显示某些文本。该文本框应该显示在第一个文本框的右侧,我已经完成了,但是我无法存储该值。如果有人可以提供一个更简单的代码,并且能够存储值以及。
这是我的代码:
z
答案 0 :(得分:0)
您想获得价值吗?为此,您应该依赖一个迭代变量。我修改了您的HTML和ts代码以合并迭代的变量i
<input type ="text" (keyup)= "ValueEntered($event.target.value)" >
<ng-template ngFor [ngForOf]="times(x)" let-i="index">
name:<input type="text" value=" " [(ngModel)]='datasets1[i]' (change)='checkval(i)'>
</ng-template>
<ng-template ngFor [ngForOf]="times(x-1)" let-i="index">
textbox:<input type="text" value=" " [(ngModel)]='datasets2[i]'>
</ng-template
在ts文件中,我定义了两个数组来存储数据数据集1和数据集2
datasets1 = [];
datasets2 = [];
ValueEntered(event)
{
this.x = event;
console.log('input value',event);
}
checkval(i){
console.log(this.datasets1[i])
}
times(x) {
return {
[Symbol.iterator]: function* () {
for (let i = 0; i < x; i++, yield) {
}}
}
}
请注意,[[ngModel)]是双向绑定