侧边栏菜单在 Laravel+vue+adminlte 中不起作用

Posted

技术标签:

【中文标题】侧边栏菜单在 Laravel+vue+adminlte 中不起作用【英文标题】:Sidebar menu not working in Laravel+vue+adminlte 【发布时间】:2020-03-22 15:44:59 【问题描述】:

我在我的 Laravel + vue 项目中使用 npm 安装了 AminLte v3,一切都很好,但是当我点击标记为的侧导航栏主菜单时

<li class="nav-item has-treeview">
    <a href="#" class="nav-link">
        <i class="nav-icon fas fa-users"></i>
        <p>
            Members
            <i class="fas fa-angle-left right"></i>
            <span class="badge badge-warning right">new:2</span>
        </p>
    </a>
    <ul class="nav nav-treeview">
        <li class="nav-item">
            <router-link :to="name : 'members'" class="nav-link">
                <i class="fas fa-user-check nav-icon"></i>
                <p>All</p>
            </router-link>
        </li>
        <li class="nav-item">
            <router-link :to="name:'membersLatest'" class="nav-link">
                <i class="fas fa-user-plus nav-icon"></i>
                <span class="badge badge-danger right">2</span>
                <p>Latest</p>
            </router-link>
        </li>
        <li class="nav-item">
            <router-link :to="name:'membersPending'" class="nav-link">
                <i class="fas fa-user-clock nav-icon"></i>
                <p>Pending</p>
            </router-link>
        </li>
        <li class="nav-item">
            <router-link :to="name:'membersSuspended'" class="nav-link">
                <i class="fas fa-user-lock"></i>
                <span class="badge badge-danger right">2</span>
                <p>Suspended</p>
            </router-link>
        </li>
    </ul>
</li>

它将我重定向到来自的# 路由器路径

<a href="#" class="nav-link">
    <i class="nav-icon fas fa-users"></i>
    <p>
        Members
        <i class="fas fa-angle-left right"></i>
        <span class="badge badge-warning right">new:2</span>
    </p>
</a>

这部分并没有在主菜单中打开子菜单,我包括来自另一个 vue 组件的 navBar。

谁能告诉我如何解决这个问题?

【问题讨论】:

请创建 sn-p 以便我们为您提供帮助 :) Snippest 是不可能的,因为它在 .html 文件中作为预览工作在这里 adminlte.io/themes/AdminLTE/index2.html 【参考方案1】:

当您点击另一条路线而不是准入路线时,树视图选择器无法找到该元素。当您推送 url 以重定向到 adminlte 时,树视图将不起作用,因为选择器是在安装元素之前定义的。

为了解决这个问题,在侧边栏组件中定义一个挂载的钩子。

mounted()
   $('[data-widget="treeview"]').Treeview('init');

【讨论】:

【参考方案2】:

在 bootstrap.js 文件中将require('admin-lte') 放在下面 require('bootstrap')

【讨论】:

以上是关于侧边栏菜单在 Laravel+vue+adminlte 中不起作用的主要内容,如果未能解决你的问题,请参考以下文章

将菜单项列表传递到 Backpack Laravel 中的侧边栏

在 laravel 8 的侧边栏中显示记录数

vue+elementui搭建后台管理界面(3侧边栏菜单)

前端学习(3039):vue+element今日头条管理-侧边菜单栏的展示和收缩

VUE项目实战19实现侧边栏折叠与展开功能

Vue.js - 使用 vuex 打开/关闭动态侧边栏思想不同的组件(导航栏到侧边栏)