РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
47 of 274 menu

Директива wire:loading.attr

Директива wire:loading.attr используется для динамического изменения атрибутов HTML-элемента во время выполнения асинхронного запроса к серверу. В значение директивы передаётся имя атрибута, который нужно изменить, а через точку указывается значение, которое будет установлено во время загрузки. Если атрибут отсутствует, он будет добавлен с указанным значением.

Синтаксис

<button wire:loading.attr="disabled"> Save </button>

В этом примере во время загрузки кнопка будет заблокирована через атрибут disabled.

Пример

Давайте создадим компонент, который сохраняет данные и блокирует кнопку на время загрузки:

<?php namespace AppLivewire; use LivewireComponent; class SaveButton extends Component { public $status = ''; public function save() { sleep(2); $this->status = 'Saved successfully!'; } public function render() { return view('livewire.save-button'); } } ?>
<button wire:click="save" wire:loading.attr="disabled"> Save Data </button> <p wire:loading.remove>Click the button to save</p> <p>{{ $status }}</p>

Результат выполнения кода до загрузки:

<button>Save Data</button> <p>Click the button to save</p>

Результат выполнения кода во время загрузки:

<button disabled>Save Data</button>

Пример

Изменим стиль элемента во время загрузки, добавив атрибут style:

<?php namespace AppLivewire; use LivewireComponent; class FormSubmit extends Component { public $message = ''; public function submit() { sleep(3); $this->message = 'Form submitted!'; } public function render() { return view('livewire.form-submit'); } } ?>
<button wire:click="submit" wire:loading.attr="style:opacity:0.5" > Submit Form </button> <span>{{ $message }}</span>

Результат выполнения кода во время загрузки:

<button style="opacity:0.5">Submit Form</button>

Пример

Используем директиву с модификатором .remove, чтобы удалить атрибут во время загрузки:

<?php namespace AppLivewire; use LivewireComponent; class EditData extends Component { public $data = 'Original data'; public function update() { sleep(2); $this->data = 'Updated data'; } public function render() { return view('livewire.edit-data'); } } ?>
<a href="#" wire:click.prevent="update" wire:loading.attr.remove="href" > Update Data </a> <p>{{ $data }}</p>

Результат выполнения кода во время загрузки:

<a>Update Data</a>

Смотрите также

  • директиву wire:loading.class,
    которая добавляет или удаляет CSS-класс во время загрузки
  • директиву wire:loading.delay,
    которая добавляет задержку перед показом состояния загрузки
  • директиву wire:loading.remove,
    которая скрывает элемент во время загрузки
  • директиву wire:loading.target,
    которая ограничивает состояние загрузки конкретным действием
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить