Может кто-нибудь помочь мне с подходом к отображению contractID на html-странице, когда я смог увидеть ответ на вкладке Network браузера: http: localhost: 8080 / api -> {contractId: 70, contractName: "HealthPlan2" , contractServiceList
: ....}.
Я сбит с толку, поскольку у меня нет явного метода get из Web API для извлечения этих данных, но я вижу этот ответ в своем браузере.
В настоящее время я сохраняю в API с помощью http.post (), я совершенно не знаю об этой функциональности Angular. Кто-то, пожалуйста, объясните, как это работает, и как я могу получить автоматически сгенерированный идентификатор, который не является частью моего метода записи. Любое предложение по перехватчику было бы хорошо.
В app.component.ts
createForm(data: any): FormGroup {
return this.formBuilder.group({
contractId: [data ? data.contractId : ''],
contractName: [data ? data.contractName : '', Validators.required],
contractServiceList: this.formBuilder.array(
this.createContractService(data ? data.contractServiceList : null),this.arrayValidator()
)
});
}
ngOnInit() {
{
this.addForm = this.createForm(null);
// this.addForm.get('contractName').valueChanges.subscribe(changes => { console.log(changes) } )
// this.addForm.valueChanges.subscribe(changes => { console.log( '*', changes) } )
}
}
onSubmit() {
this.submitted = true;
this.successMessage = '';
this.errorMessage = '';
console.log(this.addForm.value);
if (this.addForm.invalid) {
return;
}
this.getByName;
this.contractService.saveContract(this.addForm.value)
.subscribe( data => {
this.successMessage = 'Contract created successfully';
});
}
В app.component.html
<table>
<thead></thead>
<tbody>
<tr>
<td>
<input type="text" name="contractId" ng-model="contractId" style="display: none;"/>
</td>
<td>
<div class="form-group col-xs-6">
<label for="contractName">Contract Name:</label>
<input formControlName="contractName" placeholder="Contract Name" class="form-control" name="contractName" id="contractName">
<!-- <div *ngIf="submitted && f.contractName.errors" class="invalid-feedback">
<div *ngIf="f.contractName.errors.required">Contract Name is required</div>
</div> -->
</div>
</td>
<td>
<div class="form-group col-xs-6">
<h4 style="margin-left:100px;">Penalty Conditions</h4>
</div>
</td>
</tr>
</tbody>
</table>
<div formArrayName="contractServiceList">
<div *ngFor="let items of contractList.controls; let i=index"
[formGroupName]="i">
<table>
<thead></thead>
<tbody>
<tr>
<td>
<div class="form-group col-xs-6">
<label for="serviceId">Category Of Services:</label>
<select id ="serviceId" [(ngModel)]="serviceId" formControlName="serviceId" name="serviceId" class="form-control">
<option value="1">Emergency Room</option>
<option value="2">OP Radiology</option>
</select>
</div>
</td>
<td>
<div class="form-group col-xs-6">
<label for="penaltyApplies">Penalty Applies:</label>
<select id ="penaltyApplies" formControlName="penaltyApplies" name="penaltyApplies" class="form-control">
<option>Y</option>
<option>N</option>
</select>
.....
В сервис.ц
saveContract(contract: Contract) {
return this.http.post(this.baseUrl, contract).pipe(map(res => res.json));
}