1

我正在使用 angular Formio 进行动态屏幕创建,作为从数据库获取屏幕脚本时的一部分,如果我更改特定元素的标签,ngOnInit()我可以更改。

但是一旦显示屏幕,那么如果我更改标签它就不会生效。

html

<Formio [form]="form" [submission]="submission" (submit)="onSubmit($event)"></formio>
<div class="mb-5">
    <div class="row">
      <div class="col-12 mb-5">
        <div class="pull-right" style="float:right;">
          <button class="btn save-button" (click)="clearData()">Clear data</button>
          <button class="btn save-button" (click)="showData()">Show data</button>
        </div>
      </div>
    </div>
  </div>

零件

ngOnInit() {
    debugger;
    this.triggerRefresh = new EventEmitter();
    this.http.get('http://localhost:3000/angcomp/3')
    .subscribe(
      response  => {
        debugger;
        this.data = response.json();
        this.form = this.data;
        this.form.components[0].label = 'Changed';//it is updating the lable in view
      },
        err => {console.error(err)}
    ); 

}


showData() {

    this.form.components[0].label = 'Again Changed'; // here it is not changing but in this.form.components[0].label value is displaying as 'Again Changed', but not effecting in front end
}
4

1 回答 1

2

在formio中尝试刷新属性

在你的 HTML 中:

<Formio [refresh]="triggerRefresh" [form]="form" [submission]="submission" (submit)="onSubmit($event)"></formio>

在您的组件中:

showData() {
    this.form.components[0].label = 'Again Changed';
    this.triggerRefresh.emit({
    form: this.form
});
}

https://github.com/formio/angular-formio/wiki/Form-Renderer#updating-forms-and-submissions

于 2020-03-18T09:16:32.410 回答