Js events

# Blade-директивы

Blade-директивы используются для быстрого объявления событий у компонентов.

@defineEvent
@defineEvent(string|JsEvent $event, ?string $name = null, ?string $call = null)
  • $event - событие,
  • $name - название компонента,
  • $call - callback функция.
<div x-data="myComponent"
// @table-updated-index.window="asyncRequest"
@defineEvent('table-updated', 'index', 'asyncRequest')
>
</div>
@defineEventWhen
@defineEventWhen(mixed $condition, string|JsEvent $event, ?string $name = null, ?string $call = null)
  • $condition - условие для события,
  • $event - событие,
  • $name - название компонента,
  • $call - callback функция.
<div x-data="myComponent"
// @table-updated-index.window="asyncRequest"
@defineEventWhen(true, 'table-updated', 'index', 'asyncRequest')
>
</div>

# Помощник AlpineJs

AlpineJs класс-помощник, для формирования событий.

AlpineJs::event()
AlpineJs::event(string|JsEvent $event, ?string $name = null, ?string $call = null)
  • $event - событие,
  • $name - название компонента,
  • $call - callback функция.
use MoonShine\Components\FormBuilder;
use MoonShine\Enums\JsEvent;
use MoonShine\Support\AlpineJs;
 
FormBuilder::make('/crud/update', 'PUT')
->name('main-form')
->async(asyncEvents: [AlpineJs::event(JsEvent::TABLE_UPDATED, 'index', 'asyncRequest')])
AlpineJs::eventBlade()
AlpineJs::eventBlade(string|JsEvent $event, ?string $name = null, ?string $call = null)
  • $event - событие,
  • $name - название компонента,
  • $call - callback функция.
use MoonShine\Components\FormBuilder;
use MoonShine\Enums\JsEvent;
use MoonShine\Support\AlpineJs;
 
FormBuilder::make('/crud/update', 'PUT')
->name('main-form')
->customAttributes([
// @form-reset-main-form.window="formReset"
AlpineJs::eventBlade(JsEvent::FORM_RESET, 'main-form') => 'formReset',
]);