Załóżmy, że mam następujący wzór formularza napędzany:Problem z wpisywanie znaków z wyprzedzeniem prepopulating NG-Bootstrap za podczas gdy opierając się na modelu napędzany form
this.addressForm = this.formBuilder.group({
address: this.formBuilder.group({
placeId: [this.address.placeId],
description: [this.address.description]
})
});
i następujący szablon:
<form [formGroup]="addressForm" (ngSubmit)="updateAddress()" novalidate>
<div class="form-group">
<div class="input-group">
<input type="text"
formControlName="address"
placeholder="Type in you address"
[ngbTypeahead]="chooseAddress"
[inputFormatter]="addressFormatter"
[resultFormatter]="addressFormatter"
autocomplete="off"
class="form-control">
</div>
...
</form>
addressFormatter:
addressFormatter = param => param.description;
Powiedz address
to obiekt o dwóch właściwościach: placeId
i description
.
Wydaje się niemożliwe do czynienia z formGroup
(tutaj address
) zamiast formControl
(tutaj address.placeId
) i nadal wstępnie wypełnić formularz z jednym z właściwości obiektu (np address.description
).
pojawia się następujący błąd:
Error in ./UserAccountAddressComponent class UserAccountAddressComponent - inline template:8:9 caused by: control.registerOnChange is not a function TypeError: control.registerOnChange is not a function
I nie był w stanie wyświetlić jedną właściwość obiektu w polu (The address.description
) i użyć innego kiedy przesłać formularz (address.placeId
), a jednocześnie jest w stanie wstępnie wypełnić formularz jedną z właściwości obiektu (tutaj address.description
).
Czy ktoś może pomóc?
literówka? '[formControl] =" adressForm.adress "' – stealththeninja
@Karbos: Wielkie dzięki za twoje dane wejściowe. Czy możesz wyjaśnić, co ma osiągnąć powiązanie 'formControl 'i porównać je z atrybutem' formControlName'? – balteo
@stealththeninja: Zauważyłem literówkę i zmieniłem na "adres". Również Ci dziękuję. – balteo