• Overview
@angular/forms/signals

applyEach

function

Applies a schema to each item of an array.

API

function applyEach<TValue>(
  path: { [ɵɵTYPE]: [TValue[], Root] },
  schema: NoInfer<SchemaOrSchemaFn<TValue, Item>>,
): void;

applyEach

void

Applies a schema to each item of an array.

@parampath{ [ɵɵTYPE]: [TValue[], Root]; }

The target path for an array field whose items the schema will be applied to.

@paramschemaNoInfer<SchemaOrSchemaFn<TValue, Item>>

A schema for an element of the array, or function that binds logic to an element of the array.

@returnsvoid

Usage Notes

const nameSchema = schema<{first: string, last: string}>((name) => {
  required(name.first);
  required(name.last);
});
const namesForm = form(signal([{first: '', last: ''}]), (names) => {
  applyEach(names, nameSchema);
});

When binding logic to the array items, the Field for the array item is passed as an additional argument. This can be used to reference other properties on the item.

const namesForm = form(signal([{first: '', last: ''}]), (names) => {
  applyEach(names, (name) => {
    error(
      name.last,
      (value, nameField) => value === nameField.first().value(),
      'Last name must be different than first name',
    );
  });
});
Jump to details