Spec-Zone.ru › Angular

submit

Отправляет заданное FieldTree с помощью указанной функции действия и применяет к полю все ошибки отправки, возникшие в результате выполнения действия. Ошибки отправки, возвращённые action, будут добавлены в поле как ValidationError для под-поля, указанного свойством fieldTree ошибки отправки.

API

function submit<TModel>(
  form: FieldTree<TModel>,
  options?: NoInfer<FormSubmitOptions<unknown, TModel>> | undefined,
): Promise<boolean>;
function submit<TModel>(
  form: FieldTree<TModel>,
  action: NoInfer<
    (
      field: FieldTree<TModel, string | number, 'writable'>,
      detail: {
        root: FieldTree<unknown, string | number, 'writable'>;
        submitted: FieldTree<TModel, string | number, 'writable'>;
      },
    ) => Promise<TreeValidationResult<WithOptionalFieldTree>>
  >,
): Promise<boolean>;
function submit<TModel>(form: FieldTree<TModel>, options?: NoInfer<FormSubmitOptions<unknown, TModel>> | undefined): Promise<boolean>;

Отправляет заданное FieldTree с помощью указанной функции действия и применяет к полю все ошибки отправки, возникшие в результате выполнения действия. Ошибки отправки, возвращённые action, будут добавлены в поле как ValidationError для под-поля, указанного свойством fieldTree ошибки отправки.

Параллельная отправка запрещена. Если для указанного поля или любого из его родительских полей уже выполняется отправка, последующие вызовы submit немедленно вернут false, не выполняя действие.

@paramformFieldTree<TModel>

Поле для отправки.

@paramoptionsNoInfer<FormSubmitOptions<unknown, TModel>> | undefined

Параметры отправки.

@returnsPromise<boolean>

Указывает, была ли отправка успешной.

Примечания по использованию
async function registerNewUser(registrationForm: FieldTree<{username: string, password: string}>) {
  const result = await myClient.registerNewUser(registrationForm().value());
  if (result.errorCode === myClient.ErrorCode.USERNAME_TAKEN) {
    return [{
      fieldTree: registrationForm.username,
      kind: 'server',
      message: 'Username already taken'
    }];
  }
  return undefined;
}

const registrationForm = form(signal({username: 'god', password: ''}));
submit(registrationForm, {
  action: async (f) => {
    return registerNewUser(registrationForm);
  }
});
registrationForm.username().errors(); // [{kind: 'server', message: 'Username already taken'}]
function submit<TModel>(form: FieldTree<TModel>, action: NoInfer<(field: FieldTree<TModel, string | number, "writable">, detail: { root: FieldTree<unknown, string | number, "writable">; submitted: FieldTree<TModel, string | number, "writable">; }) => Promise<TreeValidationResult<WithOptionalFieldTree>>>): Promise<boolean>;
@paramformFieldTree<TModel>
@paramactionNoInfer<(field: FieldTree<TModel, string | number, "writable">, detail: { root: FieldTree<unknown, string | number, "writable">; submitted: FieldTree<TModel, string | number, "writable">; }) => Promise<TreeValidationResult<WithOptionalFieldTree>>>
@returnsPromise<boolean>

Описание

Отправляет заданное FieldTree с помощью указанной функции действия и применяет к полю все ошибки отправки, возникшие в результате выполнения действия. Ошибки отправки, возвращённые action, будут добавлены в поле как ValidationError для под-поля, указанного свойством fieldTree ошибки отправки.

Параллельная отправка запрещена. Если для указанного поля или любого из его родительских полей уже выполняется отправка, последующие вызовы submit немедленно вернут false, не выполняя действие.

Примечания по использованию

async function registerNewUser(registrationForm: FieldTree<{username: string, password: string}>) {
  const result = await myClient.registerNewUser(registrationForm().value());
  if (result.errorCode === myClient.ErrorCode.USERNAME_TAKEN) {
    return [{
      fieldTree: registrationForm.username,
      kind: 'server',
      message: 'Username already taken'
    }];
  }
  return undefined;
}

const registrationForm = form(signal({username: 'god', password: ''}));
submit(registrationForm, {
  action: async (f) => {
    return registerNewUser(registrationForm);
  }
});
registrationForm.username().errors(); // [{kind: 'server', message: 'Username already taken'}]

Super-powered by Google ©2010–2025.
Code licensed under an MIT-style License. Documentation licensed under CC BY 4.0.
https://angular.dev/api/forms/signals/submit

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API