Изменить значение с помощью события нажатия кнопки в DynamicRadioGroupModel в динамических формах - PullRequest
0 голосов
/ 30 июня 2018

Я использую ng-dynamic-form (6.0.4), NG Bootstrap с угловым 6. мой вопрос очень прост.

Я пытаюсь изменить значение в DynamicRadioGroupModel, когда срабатывает событие нажатия кнопки, я использую Метод setValue (), как показано ниже. Моя проблема заключается в том, что после установки значения в FormController пользовательский интерфейс не меняется. Помогите мне разобраться

new DynamicRadioGroupModel({

        id: "payment",
        label: "Payment Method",
        options: [
            {
                label: "Credit Card",
                value: "cc"
            },
            {
                label: "PayPal",
                value: "paypal"
            },
            {
                label: "Cash",
                value: "cash"
            },
            {
                label: "Bitcoin",
                value: "bitcoin"
            }
        ],
        value: "cc"
    })
test(){

    this.formGroup.get("payment").setValue("cash");

  }
<code><div class="overflow-hidden content-margin container-fluid" style="width: 50%;">

<form class="form-horizontal" [formGroup]="formGroup">

    <dynamic-ng-bootstrap-form-control *ngFor="let formModelCtrl of formModel"
                               [group]="formGroup"
                               [layout]="formLayout"
                               [model]="formModelCtrl"
                               (blur)="onBlur($event)"
                               (change)="onChange($event)"
                               (focus)="onFocus($event)"
                               (ngbEvent)="onNgbEvent($event)"></dynamic-ng-bootstrap-form-control>

</form>

<button (click)="test()" type="button">Test</button>

<pre>{{formGroup.value | json}}

1 Ответ

0 голосов
/ 20 июля 2018

для обновления значений, вы должны использовать тему 'valueUpdates' из вашей DynamicFormsModel, в вашем случае это должно работать ::

   const radioGroup: DynamicRadioGroupModel<string> = 
this.dynamicFormService.findById('payment', this.formModel) as 
DynamicRadioGroupModel<string>; radioGroup.valueUpdates.next('cc');

'dynamicFormService' - это то, что вы использовали для создания группы форм из модели.

относительно git hub поднял вопрос .

...