json объект не влияет на просмотр - PullRequest
1 голос
/ 18 марта 2020

Я использую angular Formio для создания динамического c экрана, и как часть этого, когда я получаю экранный скрипт из базы данных, если я изменяю метку определенного элемента в 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
}

1 Ответ

2 голосов
/ 18 марта 2020

Попробуйте свойство refre sh в формате

В 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 -формы-и-представления

...