alpine.js 相关问题


可重用的 Alpine.js 组件?

如何使用 Alpine.js 创建可重用组件并显示它?例如,也许我想定义一个通用的 Alpine.js 按钮组件,用于更改参数中的文本和颜色,然后让我的 Al...


Alpine.js 和 jQuery DataTables,x-on:在表内触发时单击功能不全

我的 Laravel 和 Alpine.js 刀片页面中有此表。 名字 我的 Laravel 和 Alpine.js 刀片页面中有此表。 <table id="projects-table"> <thead> <tr> <th>name</th> <th>actions</th> </tr> </thead> <tbody> @foreach($projects as $project) <tr> <td>{{ $project->name }}</td> <td><button x-data="{}" x-on:click="$dispatch('open-modal', 'edit-project')">edit</button></td> </tr> @endforeach </tbody> </table> 有了它,我有了这个 JavaScript 代码,可以将其转换为 jQuery DataTable document.addEventListener('DOMContentLoaded', function () { new DataTable('#projects-table'); }); 现在发生的情况是,当我单击 button 内的 td 时,我的模式不会触发 当表不是 DataTable 时,一切正常。 基本上发生了什么(可能),当 jQuery 操作元素时,@click 事件不会触发。有任何已知的修复方法吗?感谢所有帮助。 解决方案是将表包含在由 Alpine 控制的标签中,并在 Alpine 启动后初始化 DataTable: <div x-data> <table id="projects-table"> <!-- ..... --> </table> </div> <script> document.addEventListener('alpine:init', () => { new DataTable('#projects-table') }); </script> 通过这种方式,Alpine 可以检测到 DOM 何时被 DataTables 更改,然后重建他的引用。 否则,在您的具体情况下,您可以使用 vanilla JS 发送自定义事件并保持其他内容不变: <!-- ..... --> <td> <button onclick="window.dispatchEvent(new CustomEvent('open-modal', { detail: 'edit-project' }))"> Edit </button> </td> <!-- ..... --> <!-- Simple example for the modal triggering --> <div x-data="{isOpen: false}" x-show="isOpen" @open-modal.window="isOpen = true"> I'm open! <div>


Alpine.js xcollapse 不适用于 laravel 组件和 p 标签

如果我使用p标签和组件,折叠总是打开的 ` 如果我使用 p 标签和组件,折叠始终是打开的 ` <div x-data="{ expanded: false }"> <x-nav-link @click="expanded = ! expanded" :href="'#'" :active="false">{{ __('Collapse') }}</x-nav-link> // This is not working <p x-show="expanded" x-collapse> <x-nav-link :href="'/'" :active="false" :sub="true">{{ __('Sub') }}</x-nav-link> </p> // This is working <div x-show="expanded" x-collapse> <x-nav-link :href="'/'" :active="false" :sub="true">{{ __('Sub') }}</x-nav-link> </div> </div> 控制台没有显示任何错误 在您的示例中, 标签包含一个肯定会由 标签(或其他一些块标签)分隔的组件 当浏览器遇到 标签内的 block 标签时,会自动将其关闭,这样组件就会位于 标签之外,不会受到 x-show="expanded" 的影响。 您可以使用浏览器控制台来解决这个问题(我使用 而不是您的组件进行测试): 通常浏览器还会尝试通过添加新的内容来修复问题 标签匹配将保持孤立状态的结束标签 解决方案可能是将组件插入非块类型标签中。否则必须更换 <\p> 标签。 这里有一些对标签的参考


© www.soinside.com 2019 - 2024. All rights reserved.