Alpine.js 未定义的变量:分派
Alpine.js Undefined variable: dispatch
我在 laravel 7.x 应用程序中使用 alpine.js
。我还使用 LaravelCollective/html
来构建一个非常基本的表单。这里的想法是,我试图根据选择的 select
输入更改锚标记的 href
。我收到以下错误:Undefined variable: dispatch
这是我的 HTML/code:
<div x-data="{ url: '{{ route('dogs', ['dog'=>$selectedDog]) }}' }" class="px-4 py-5 sm:p-6">
<div class="mt-2">
{{ Form::select('dogs', $dogs, null,
['class' => 'mt-1 sm:leading-5',
'x-on:change' => "$dispatch('selection-change', { value: $event.target.value })"]) }}
</div>
<div class="mt-6">
<span class="block w-full rounded-md shadow-sm">
<a
href="{{ route('dog', ['dog'=>$selectedDog]) }}"
x-bind:href="url"
x-on:selection-change.window = "alert('test');"
class="w-full">
Go to Dog
</a>
</span>
</div>
</div>
更改 select
输入应触发绑定到锚标记上的 window
对象的 x-on:selection-change.window
事件。不过 $dispatch
似乎有问题。
PHP 看到 $dispatch
并认为它是一个 PHP 变量,可能需要转义 $
或使用不允许插值的字符串
或者:
- 转义
$
: 'x-on:change' => "$dispatch('selection-change', { value: $event.target.value })"
- 使用单引号字符串:
'x-on:change' => '$dispatch("selection-change", { value: $event.target.value })'
我在 laravel 7.x 应用程序中使用 alpine.js
。我还使用 LaravelCollective/html
来构建一个非常基本的表单。这里的想法是,我试图根据选择的 select
输入更改锚标记的 href
。我收到以下错误:Undefined variable: dispatch
这是我的 HTML/code:
<div x-data="{ url: '{{ route('dogs', ['dog'=>$selectedDog]) }}' }" class="px-4 py-5 sm:p-6">
<div class="mt-2">
{{ Form::select('dogs', $dogs, null,
['class' => 'mt-1 sm:leading-5',
'x-on:change' => "$dispatch('selection-change', { value: $event.target.value })"]) }}
</div>
<div class="mt-6">
<span class="block w-full rounded-md shadow-sm">
<a
href="{{ route('dog', ['dog'=>$selectedDog]) }}"
x-bind:href="url"
x-on:selection-change.window = "alert('test');"
class="w-full">
Go to Dog
</a>
</span>
</div>
</div>
更改 select
输入应触发绑定到锚标记上的 window
对象的 x-on:selection-change.window
事件。不过 $dispatch
似乎有问题。
PHP 看到 $dispatch
并认为它是一个 PHP 变量,可能需要转义 $
或使用不允许插值的字符串
或者:
- 转义
$
:'x-on:change' => "$dispatch('selection-change', { value: $event.target.value })"
- 使用单引号字符串:
'x-on:change' => '$dispatch("selection-change", { value: $event.target.value })'