Mam składnik z:Ustaw właściwość dynamiczny ngModel wewnątrz ngFor z Kątowymi 2
- "selectedData": każdy
- "Fields": tablicę pól. Pole to obiekt o tych właściwościach: etykieta i typ. Pola te opisują obiekt „selectedData”
Przykład:
selectedData = { Label:"test", IsUsed:false}
fields = [{name:'label', type:'string'},{name:'IsUsed, type:'boolean'}
Próbuję utworzyć formularz do edycji danych wewnątrz „selectedData”
Oto część moich view:
<div class="ui-grid-row" *ngFor="let myField of fields" >
<div class="ui-grid-col-4"><label for="{{myField.name}}">{{myField.name}}</label></div>
<div class="ui-grid-col-8"><input pInputText id="{{myField.name}}" [(ngModel)]="this['selectedData.' + myField.name]" /></div>
</div>
Problem dotyczy tej linii
[(ngModel)]="this['selectedData.' + myField.name]"
To nie działa tak, jak chciałem. Oto zegarek Google Chrome mojego komponentu kiedy edycji:
Jak widać, Angular2 tworzy obiekt o nazwie „selectedData.Label” zamiast korzystać z istniejącego obiektu selectedData.
Czy istnieje rozwiązanie? Czy powinienem zrobić to inaczej?
Thx
dlaczego przegrana? –
Mam naprawdę trudny czas, aby to zrozumieć. Próbujesz więc w swoim przykładzie edytować etykietę istniejących wybranych danych. Następnie powinien to być np. [(NgModel)] = "selectedData.Label", w przeciwnym razie nie zaktualizuje etykiety. – Alex
w jakim celu potrzebujesz tablicy pól? – Alex