3
안녕하세요, 저는 여기에 뭔가 잘못하고 있습니까? : patchValue가 정상적으로 작동하고 있습니다. 또한 전용 _ngZone 내() 메소드 .RUN 사용 ChangeDetectorRefAngular2 FormGroup View가 구독 중 업데이트되지 않습니다.
: 그러나 뷰의 입력 값을 업데이트 할 것이다 FormGroup은 ..
이미 수동 개인 REF를 이용하여 트리거링 시도 NgZone
을HTML :
이 내 코드입니다
작동하지 않습니다
<form [formGroup]="addressForm">
<div class="row">
<!--zip-->
<div class="form-group col-md-2">
<label>Zipcode</label>
<input type="text" class="form-control" formControlName="ZipCode">
<small [hidden]="addressForm.controls.zipcode.valid" class="text-danger">
zip is invalid!
</small>
</div>
<!--city-->
<div class="form-group col-md-3">
<label>City</label>
<input type="text" class="form-control" formControlName="City">
</div>
</div>
<div class="row">
<!--state-->
<div class="form-group col-md-3">
<label>State</label>
<input type="text" class="form-control" formControlName="State">
</div>
</div>
<div class="row">
<!--street-->
<div class="form-group col-md-3">
<label>Street</label>
<input type="text" class="form-control" formControlName="Street">
</div>
<!--streetNumber-->
<div class="form-group col-md-2">
<label>Number</label>
<input type="text" class="form-control" formControlName="StreetNumber">
</div>
</div>
주소 .Component
import { Observable } from 'rxjs/Observable';
import { AddressService } from './../service/address.service';
import { Address } from './../../../models/adresse.model';
import { NgZone, Component, Input, OnInit, ChangeDetectionStrategy,ChangeDetectorRef } from '@angular/core';
import { FormGroup, Form, FormBuilder, Validators, FormControl } from
'@angular/forms';
import { Router, ActivatedRoute, Params } from '@angular/router';
@Component({
moduleId: module.id,
selector: 'address-detail',
templateUrl: 'address-detail.component.html',
changeDetection: ChangeDetectionStrategy.Default
})
export class AddressDetailComponent implements OnInit {
@Input('group')
public addressForm: FormGroup;
constructor(private service: AddressService, private route: ActivatedRoute, private _fb: FormBuilder, private ref: ChangeDetectorRef, private _ngZone: NgZone) {
}
ngOnInit() {
this.addressForm = this._fb.group({
ZipCode: ['', Validators.required],
City: [''],
State: [''],
Street: [''],
StreetNumber: ['', Validators.required]
});
let id = this.route.snapshot.params['id'] + "";
this.service.getAddressBy(id).subscribe((result) => {
this.addressForm.patchValue(result.Data);
});
}
}
서비스 :
public getAddressBy(Id: string):
Observable<TransferContainerModel<Address>> {
let url = AddressService.BASE_URL + 'GetAddressBy/'+Id;
return this.http.get(url)
.map((res:Response) => res.json())
.catch((error:any) =>
Observable.throw(error.json().error || 'Server error'));
}
결과 데이터가 미세하고 구독 ENV 외부에서 예상대로 작동합니다. 힌트가 있습니까?
model: Address = new Address() //I suppose that you have a constructor for Address
this.addressForm = this._fb.group({
ZipCode: [this.model.zipCode, Validators.required],
City: [this.model.city],
State: [this.model.state],
Street: [this.model.street],
StreetNumber: [this.model.streetNumber, Validators.required]
});
이제 patchValue해야 작품 : 당신이 주소에 대한 모델을 가지고있는 것처럼
들으
중대한 제안에 시간을 검색하는 이유 모델 세부 정보를 보낸 후 컨트롤이 업데이트되지 않고 세부 정보가 모델에 포함되었습니다. 도와 주셔서 감사합니다. – CodingRiot