From 1cd4dccf36df890fac95351f4714070e18333141 Mon Sep 17 00:00:00 2001 From: danranVm Date: Mon, 6 Mar 2023 20:33:31 +0800 Subject: [PATCH] feat(cdk:forms): formArray supports clearControls (#1490) --- packages/cdk/forms/__tests__/formArray.spec.ts | 10 ++++++++++ packages/cdk/forms/docs/Api.zh.md | 4 ++++ packages/cdk/forms/src/models/formArray.ts | 6 ++++++ 3 files changed, 20 insertions(+) diff --git a/packages/cdk/forms/__tests__/formArray.spec.ts b/packages/cdk/forms/__tests__/formArray.spec.ts index b6bfe395b..3704c7b45 100644 --- a/packages/cdk/forms/__tests__/formArray.spec.ts +++ b/packages/cdk/forms/__tests__/formArray.spec.ts @@ -95,6 +95,16 @@ describe('formArray.ts', () => { expect(array.blurred.value).toEqual(false) }) + test('clearControls work', async () => { + expect(array.length.value).toEqual(1) + expect(array.getValue()).toEqual([basicValue]) + + array.clearControls() + + expect(array.length.value).toEqual(0) + expect(array.getValue()).toEqual([]) + }) + test('setControl work', async () => { expect(array.getValue()).toEqual([basicValue]) const group = new FormGroup({ diff --git a/packages/cdk/forms/docs/Api.zh.md b/packages/cdk/forms/docs/Api.zh.md index fc40c5493..6a51362ca 100644 --- a/packages/cdk/forms/docs/Api.zh.md +++ b/packages/cdk/forms/docs/Api.zh.md @@ -534,6 +534,10 @@ export class FormArray extends AbstractControl { * @param index 删除控件的下标 */ removeAt(index: number): void; + /** + * 清空数组中的所有子空间 + */ + clearControls(): void; /** * 替换数组中给定 `index` 处现有的子控件 * diff --git a/packages/cdk/forms/src/models/formArray.ts b/packages/cdk/forms/src/models/formArray.ts index eddfb06fe..742a6a01a 100644 --- a/packages/cdk/forms/src/models/formArray.ts +++ b/packages/cdk/forms/src/models/formArray.ts @@ -107,6 +107,12 @@ export class FormArray extends AbstractControl { controls.splice(index, 1) this._controls.value = controls } + /** + * Empties out the controls. + */ + clearControls(): void { + this._controls.value = [] + } /** * Replace an existing control.