文本框应显示,如果用户输入两个,则应显示两个文本框以获取名称,一个文本框应显示一些文本

时间:2019-06-29 11:05:00

标签: angular

根据用户输入,文本框应显示在屏幕上。例如,如果用户输入“ 2是2”,则应显示两个文本框以获取用户名,而应显示一个文本框以显示某些文本。该文本框应该显示在第一个文本框的右侧,我已经完成了,但是我无法存储该值。如果有人可以提供一个更简单的代码,并且能够存储值以及。

这是我的代码:

z

1 个答案:

答案 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)]是双向绑定