Form.IO Renderer Angular 8 Загрузить форму из переменной

Я не могу заставить форму отображаться при передаче строки JSON в качестве переменной. Если я вставляю строку в HTML, она работает нормально. Очень смущенный. Мой HTML:

<formio [form]="form" (submit)="onSubmit($event)"></formio>

Я предварительно загружаю JSON и извлекаю данные маршрута. Мой компонент:

  export class FormIOViewerComponent implements OnInit {
  constructor(private route: ActivatedRoute) { }
  form:string='';
  onSubmit(submission: any) {
    console.log(submission); 
  }
  ngOnInit() {    
    this.form=this.route.snapshot.data.Fields;
    console.log(this.form)
  }
}

Строка JSON выводится на консоль перед ошибкой, и снова я могу скопировать и вставить строку JSON, напечатанную с консоли, в HTML, и она отображается нормально. Ошибка в Chrome:

form-ioviewer.component.html:1 ERROR TypeError: Cannot read property '1' of null
at new Formio (Formio.js:213)
at Form.setForm (Form.js:185)
at new Form (Form.js:106)
at FormioComponent.push../node_modules/angular-formio/FormioBaseComponent.js.FormioBaseComponent.createRenderer (FormioBaseComponent.js:90)
at FormioComponent.push../node_modules/angular-formio/FormioBaseComponent.js.FormioBaseComponent.setForm (FormioBaseComponent.js:111)
at FormioBaseComponent.js:402
at ZoneDelegate.invoke (zone-evergreen.js:359)
at Zone.run (zone-evergreen.js:124)
at NgZone.runOutsideAngular (core.js:39572)
at FormioComponent.push../node_modules/angular-formio/FormioBaseComponent.js.FormioBaseComponent.ngOnChanges (FormioBaseComponent.js:398)

person Joshua Fellers    schedule 06.02.2020    source источник


Ответы (1)


Оказывается, это не будет кроме строки JSON, это ДОЛЖЕН быть объект. Что-то типа:

export class formIO {
    title:string;
    name:string
    components: string[]
  }

Затем передайте объект форме, а не строке.

person Joshua Fellers    schedule 07.02.2020