Typescript 在ng Dynamic Forms中使用DynamicRadioGroupModel中的按钮单击事件更改值

Typescript 在ng Dynamic Forms中使用DynamicRadioGroupModel中的按钮单击事件更改值,typescript,angular6,ng-bootstrap,dynamicform,Typescript,Angular6,Ng Bootstrap,Dynamicform,我使用的是ng动态表单(6.0.4),ng引导和angular 6。 我的问题很简单 我试图在触发按钮单击事件时更改DynamicRadioGroupModel中的值,我使用 “setValue()”方法,如下所示。我的问题是在将值设置到FormController UI中后没有更改。 帮我弄清楚 new DynamicRadioGroupModel({ id: "payment", label: "Payment Method", option

我使用的是ng动态表单(6.0.4),ng引导和angular 6。 我的问题很简单

我试图在触发按钮单击事件时更改DynamicRadioGroupModel中的值,我使用 “setValue()”方法,如下所示。我的问题是在将值设置到FormController UI中后没有更改。 帮我弄清楚

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" }) 新的动态cradiogroupmodel({ id:“付款”, 标签:“付款方式”, 选项:[ { 标签:“信用卡”, 值:“cc” }, { 标签:“贝宝”, 价值:“贝宝” }, { 标签:“现金”, 价值:“现金” }, { 标签:“比特币”, 价值:“比特币” } ], 值:“cc” }) 测试(){ 此.formGroup.get(“付款”).setValue(“现金”); }

试验
{{formGroup.value | json}}

要更新值,您应该使用DynamicFormsModel中的“valueUpdates”主题,在您的情况下,这里应该可以:

const-radioGroup:DynamicRadioGroupModel=
this.dynamicFormService.findById('payment',this.formModel)作为
动态cradiogroupmodel;radioGroup.valueUpdates.next('cc');
“dynamicFormService”是用于从模型创建表单组的服务

关于git hub,提出了一个建议

test(){ this.formGroup.get("payment").setValue("cash"); }
<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}}</pre>
   const radioGroup: DynamicRadioGroupModel<string> = 
this.dynamicFormService.findById('payment', this.formModel) as 
DynamicRadioGroupModel<string>; radioGroup.valueUpdates.next('cc');