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



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

这是我的代码:

    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(]是一种两种绑定

最新更新