首页 > 解决方案 > 提交后无法清除 angular-json-schema-form

问题描述

我正在使用 json-schema-form 构建一个表单,并且正在使用这个库。 https://www.npmjs.com/package/angular6-json-schema-form

这看起来不错,但我有一个问题。提交后,我想清空表格,但是不可能。

我在文档中找不到方法,也搜索了stackoverflow并google了,但没有得到解决方案。所以我在提交后使用Javascript清除了表单,但是表单数据似乎保存在某个地方,因此可以重新提交而无需任何操作。

这是代码

<json-schema-form
     *ngIf="isInquireForm"
     class="contact-form"
     loadExternalAssets="true"
     framework="no-framework"
     [options]="inquireFormOption"
     [schema]="inquireFormSchema"
     [form]="inquireFormLayout"
     (onSubmit)="onInquireSubmit($event)"
     (isValid)="inquireIsValidFn($event)"
     (validationErrors)="inquireValidationErrorsFn($event)">
</json-schema-form>

标签: jsonangularangular6-json-schema-form

解决方案


您需要创建一个对象以使用默认值填充表单并将其绑定到 json 模式表单组件。当需要重置时,清除对象中的数据。

data = {
   first_name: "abc",
   last_name: "xyz"
}
<json-schema-form
     *ngIf="isInquireForm"
     class="contact-form"
     loadExternalAssets="true"
     framework="no-framework"
     [options]="inquireFormOption"
     [schema]="inquireFormSchema"
     [form]="inquireFormLayout"
     [(data)]="data"
     (onSubmit)="onInquireSubmit($event)"
     (isValid)="inquireIsValidFn($event)"
     (validationErrors)="inquireValidationErrorsFn($event)">
</json-schema-form>

并清除表格,重置data

data = {
   first_name: "",
   last_name: ""
}

推荐阅读