В настоящее время у меня есть таблица, отображающая список значений с одним полем ввода. Цель состоит в том, чтобы пользователь заполнил поле ввода в каждой строке и затем нажал кнопку «Отправить». Затем мне нужно передать все значения, такие как «Имя действия», «От имени учетной записи», «На имя учетной записи» и соответствующую сумму в переменную в моем component.ts.
Я думаю, что у меня мог бы быть объект массива, который я мог бы циклически проходить для каждой строки.
Пример таблицы:
Activity Name From Account Name To Account Name Amount
Deposit Personal1 Bank1 USERINPUT
Withdrawal Bank1 Personal1 USERINPUT
Deposit Personal2 Bank1 USERINPUT
Моя конечная игра - иметь массив, который я обрабатываю, используя цикл for, например:
for (i in this.AccountArray) {
this.databaseService.getData(this.AccountArray[i]).subscribe(
account_results => this.account_results = account_results
);
}
Таким образом, в приведенном выше примере я обработал бы 3 цикла, причем цикл 1 выглядит следующим образом: (Deposit, Personal1, Bank1, 50).
Account.component.html
<form [formGroup]="CmForm" (ngSubmit)="submit()" name="CmForm" >
<div class="form-group">
<label for="dateselection">Enter Date you are processing.</label>
<input type="date" id="dateselection" value="{{ yesterday | date:'yyyy-MM-dd'}}"
min="2015-01-01" max="{{ yesterday | date:'yyyy-MM-dd'}}" (change)="changedDate($event)" class="datepicker" />
<br>
<br>
<br><h3>Cash Movement</h3>
<table class="responstable" >
<tr>
<th>Activity Name</th>
<th>From Account </th>
<th>To Account </th>
<th>Amount</th>
</tr>
<tr *ngFor="let activityresult of activityresults" >
<td>{{activityresult.Activity_Description}} </td>
<td>{{activityresult.From_Account_Name}} </td>
<td>{{activityresult.To_Account_Name}} </td>
<td><input type="textbox" (change)="changedAmount($event)"></td>
</tr>
</table>
<br>
<input type="submit" value="Submit" /><br><br>
<br><br><br><br>
</div>
</form>
Account.component.ts
import { ActivityResult } from './../database.service';
export class AccountComponent implements OnInit {
CmForm: FormGroup;
activityresults: Array<ActivityResult>;
constructor(
private databaseService: DatabaseService
) {}
ngOnInit() {
this.CmForm = new FormGroup({
'dateselection': new FormControl(null, [Validators.required])
});
// returns the starting set of Activities when page is loaded.
this.databaseService.getActivity().subscribe(
activityresults => this.activityresults = activityresults
);
}
}
database.service.ts
export class ActivityResult {
Activity_Description: string;
From_Account_Name: string;
To_Account_Name: string;
}
getActivity(): Observable<ActivityResult[]> {
const url = 'http://localhost:3000/a';
const data = ({
});
return this._http.post(url, data)
.pipe(
map((res) => {
console.log(res);
return <ActivityResult[]> res;
})
);
Любой совет будет принят с благодарностью.