我已尝试了解您的要求并创建了解决方案。
据我了解,您有使用此处提到的代码生成的用户控件(如下图所示):
<th *ngFor="let column of Filter" >
<tr>{{ column.name }}:
<input type="{{column.type}}" id="{{ column.key }}"
name="{{ column.key }}" autocomplete="off"
[(ngModel)]="column.value" > </tr>
</th>
<hr>
<button class="btn btn-success" type="submit" (click)="fFilter()">Search</button>
在所有文本框中输入数据后,当用户单击要输出的搜索或数据时,如下图所示的函数调用中的警报。
我添加了 [(ngModel)]="column.value" 用于每个文本框数据的两种方式绑定。我们可以在 .ts 文件中获取这些数据。
Column.model.ts:
export class Column{
public key:string;
public type:string;
public name:string;
public value:string;
constructor(key:string,type:string,name:string,value:string)
{
this.key=key;
this.type=type;
this.name=name;
this.value=value;
}
}
component.ts 文件:
import { Component, OnInit } from '@angular/core';
import { Column } from './Column';
@Component({
selector: 'app-sample',
templateUrl: './sample.component.html',
styleUrls: ['./sample.component.css']
})
export class SampleComponent implements OnInit {
column: Column;
Filter: Column[]=[new Column("1","ABC","Column1",""),
new Column("2","ABC","Column2",""),
new Column("3","ABC","Column3",""),
new Column("4","ABC","Column4","")];
constructor() {
// this.Filter=new Column(id="",type="",name="")
}
ngOnInit() {
}
fFilter(){
var requiredValue="";
this.Filter.map(
x=>requiredValue+=(x.key+"="+x.value+",")
);
alert(requiredValue);
}
}
基本上,我改变了将参数从 HTML 文件传递到 typescript 文件的方式,但在 fFilter() 函数中获得了相同的数据,您可以根据需要使用这些数据。