作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
问题是我们必须采用 *ngFor 循环下的值,因此它采用来自第一个输入的值。我们必须对来自输入值的数组中的值进行排序。
HTML
<div *ngFor="let ele of container">
<div *ngIf="keyValue === ''">
<input type="text" [(ngModel)]="keyValue" />
<textarea
name=""
id=""
cols="30"
rows="10"
[(ngModel)]="textValue"
></textarea>
</div>
<button (click)="addContainer()">Add More</button>
</div>
.ts 文件
import { Component, OnInit } from '@angular/core';
@Component({
selector: 'app-sample',
templateUrl: './sample.component.html',
styleUrls: ['./sample.component.css'],
})
export class SampleComponent implements OnInit {
constructor() {}
container: any[] = [0];
keyValue: String = '';
textValue: String = '';
newArray: any = [];
ngOnInit(): void {}
addContainer() {
this.newArray.push({ key: this.keyValue, values: this.textValue });
console.log(this.newArray);
this.container.push(this.container.length);
console.log(this.container);
}
}
最佳答案
您应该使用响应式(Reactive)表单来构建表单,如果您想要像这样创建一个非常简单的表单。
HTML:
<div *ngFor="let ele of container; let i = index">
<div >
<input type="text" [(ngModel)]="newArray[i].values" />
<textarea
name=""
id=""
cols="30"
rows="10"
[(ngModel)]="newArray[i].textValue"
></textarea>
</div>
</div>
<button (click)="addContainer()">Add More</button>
TS:
container: any[] = [1];
newArray: any = [{ key: 1, values: '' }];
ngOnInit(): void {}
addContainer() {
let keyValue = this.container.length + 1;
this.newArray.push({ key: keyValue, values: '' });
console.log(this.newArray);
this.container.push(keyValue);
console.log(this.container);
}
关于angular - 如何从 *ngFor 循环中的输入中获取值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70448290/
我是一名优秀的程序员,十分优秀!