我有一个模型,我用阿尔卑斯山js显示或隐藏. 当我按下一个按钮时,我会选中一个布尔值,如果是真的,我想关闭该模式,为此,我必须与Alpines的数据交互. 有没有办法从JS调用Alphines的函数?
我try 使用自定义事件,但似乎不起作用
let event = new CustomEvent("closeModal", {}); window.dispatchEvent(event)
个
然后在通道的目录中
x-show="isOpen()" @closeModal.window="close"
个
编辑:
多亏了pthomson回答,我能够让它工作,我还找到了一种不使用事件的方法
<div x-data>
<button type="button" @click="$store.modal.open()">Open Modal</button>
<div x-show="$store.modal.isOpen()">
//Modal content
</div>
</div>
<script>
document.addEventListener('alpine:init', () => {
Alpine.store('modal', {
show:false,
isOpen() {
return this.show;
},
open(){
this.show=true;
},
close(){
this.show =false;
}
})
})
function closeModal(){
Alpine.store("modal").close();
}
</script>