基于用户输入,文本框应在屏幕上显示。例如,如果用户输入两个是两个,则应显示两个文本框,以获取用户名,一个文本框应显示一些文本。该文本框应显示在第一个文本框的右侧,我已经完成了,但是我无法存储该值。如果任何人都可以提供更简单的代码,并且能够存储值以及。
这是我的代码:
No entered by user: <input type ="text" (keyup)=
"ValueEntered($event.target.value)</td>
<ng-template ngFor [ngForOf]="times(x)">
name:<input type="text" value=" ">
</ng-template>
<ng-template ngFor [ngForOf]="times(x-1)">
textbox:<input type="text" value=" ">
</ng-template>
enter code here`
ValueEntered(event)
{
this.x=event;
console.log('input value',event);
}
function times(x) {
return {
[Symbol.iterator]: function* () {
for (let i = 0; i < x; i++, yield) {
}}
您想获得值吗?为此,您应该取决于迭代变量。我修改了您的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文件中,我定义了两个数组来存储数据数据集和数据集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(]是一种两种绑定