livewire dispatchBrowserEvent 未触发警报
livewire dispatchBrowserEvent is not triggering alert
我有一个 livewire 组件,它有一个 update() 函数,可以在组件发生变化时更新它。调用 update() 函数并根据需要更新数据库中的项目。在此函数结束时,我 运行 一个 dispatchBrowserEvent() 来确认更新,但我的 js 文件中的相应函数未被调用,因此未触发警报。
我一直在使用文档中的这个方法https://laravel-livewire.com/docs/2.x/events#browser
livewire 组件:
<?php
namespace App\Http\Livewire;
use App\Models\Item;
use Livewire\Component;
class EditItem extends Component
{
public int $item;
public string $date = '';
public function render()
{
return view('livewire.edit-item');
}
public function update()
{
$item = Item::find( 1 );
$item->date = now();
$item->save();
$this->dispatchBrowserEvent('update-item', ['item' => $item->id, 'date' => $item->date]);
}
}
其blade文件:
<div>
<button wire:click="update">Update Me!</button>
</div>
在我的 app.js 我有以下内容:
jQuery(document).ready( function($) {
/** LIVEWIRE EVENT ACTIONS **/
window.addEventListener('update-item', event => {
alert( 'Date updated to: ' + event.detail.date + 'on item with id of ' + event.detail.item );
})
});
原来我没有 运行 npm run dev
所以 javascript 不存在。在 运行 之后一切都很好。
删除 app.js
中的代码
jQuery(document).ready( function($) {
/** LIVEWIRE EVENT ACTIONS **/
window.addEventListener('update-item', event => {
alert( 'Date updated to: ' + event.detail.date + 'on item with id of ' + event.detail.item );
})
});
在blade
<div>
<button wire:click="update">Update Me!</button>
<script>
document.addEventListener('update-item', event => {
alert( 'Date updated to: ' + event.detail.date + 'on item with id of ' + event.detail.item );
})
</script>
</div>
我有一个 livewire 组件,它有一个 update() 函数,可以在组件发生变化时更新它。调用 update() 函数并根据需要更新数据库中的项目。在此函数结束时,我 运行 一个 dispatchBrowserEvent() 来确认更新,但我的 js 文件中的相应函数未被调用,因此未触发警报。
我一直在使用文档中的这个方法https://laravel-livewire.com/docs/2.x/events#browser
livewire 组件:
<?php
namespace App\Http\Livewire;
use App\Models\Item;
use Livewire\Component;
class EditItem extends Component
{
public int $item;
public string $date = '';
public function render()
{
return view('livewire.edit-item');
}
public function update()
{
$item = Item::find( 1 );
$item->date = now();
$item->save();
$this->dispatchBrowserEvent('update-item', ['item' => $item->id, 'date' => $item->date]);
}
}
其blade文件:
<div>
<button wire:click="update">Update Me!</button>
</div>
在我的 app.js 我有以下内容:
jQuery(document).ready( function($) {
/** LIVEWIRE EVENT ACTIONS **/
window.addEventListener('update-item', event => {
alert( 'Date updated to: ' + event.detail.date + 'on item with id of ' + event.detail.item );
})
});
原来我没有 运行 npm run dev
所以 javascript 不存在。在 运行 之后一切都很好。
删除 app.js
中的代码jQuery(document).ready( function($) {
/** LIVEWIRE EVENT ACTIONS **/
window.addEventListener('update-item', event => {
alert( 'Date updated to: ' + event.detail.date + 'on item with id of ' + event.detail.item );
})
});
在blade
<div>
<button wire:click="update">Update Me!</button>
<script>
document.addEventListener('update-item', event => {
alert( 'Date updated to: ' + event.detail.date + 'on item with id of ' + event.detail.item );
})
</script>
</div>