我在laravel 5.7 / blade / Bootstrap 4.1应用程序中有一个带有子菜单的左侧菜单,并且如果打开了子菜单的某些元素 我想保持打开父菜单项。我试图将其保留为当前控件名称:
<?php $manage_storage= ($current_controller_name == 'ClientsController'); ?>
<div class="sidebar-header">
@if(isset($app_name))<h3>{{ $app_name }}</h3>@endif
</div>
<ul class="list-unstyled components">
<li>
<a href="#users_submenu" data-toggle="collapse" aria-expanded="false" class="dropdown-toggle">Manage Users</a>
<ul class="collapse list-unstyled" id="users_submenu">
<li>
<a href="#">Manage Departments</a>
</li>
<li>
<a href="#">Manage Users</a>
</li>
</ul>
</li>
<li>
<a href="#manage_storage_submenu" data-toggle="@if($manage_storage) dropdown @else collapse @endif" aria-expanded="@if($manage_storage) true @else false @endif" class="@if($manage_storage) @else dropdown-toggle @endif">Manage Storage</a>
<ul class="collapse list-unstyled @if($manage_storage) show @endif" id="manage_storage_submenu">
<li class=" @if($current_controller_name == 'ClientsController') active @endif ">
<a href="{{ url('admin/clients') }}">Manage Clients</a>
</li>
<li>
<a href="#">Manage Locations</a>
</li>
<li class=" @if($current_controller_name == 'WarehousesController') active @endif ">
<a href="{{ url('admin/warehouses') }}" >Manage Warehouses</a>
</li>
</ul>
</li>
因此,如果打开“客户端”页面,则必须打开“管理存储”菜单。
但是它不符合我的预期: 请打开: http://demo2.nilov-sergey-demo-apps.tk/admin/warehouses/2/edit 它的凭据为admin@demo.com 111111
查看http://demo2.nilov-sergey-demo-apps.tk/admin/dashboard和http://demo2.nilov-sergey-demo-apps.tk/admin/clients页面 第一页(未打开“管理存储”时)下拉菜单子图标位于该页面的其他位置: 在第二页上(打开“管理存储”时),我没有看到下拉子菜单项的图标。
如何修复?
更新的1号区块 设置
<li style="position: relative;">
图标位于适当的位置,但是“管理存储”不可单击。 我尝试过,但与“管理用户”菜单项没有任何区别,菜单项本身没有php代码,可以正常工作。 怎么了?
更新的块#2: 我在https://validator.w3.org下检查了html生成的代码 并出现错误:
Error: Bad value false for attribute aria-expanded on element a.
From line 96, column 4; to line 96, column 112
ive;">↩ <a href="#manage_storage_submenu" data-toggle=" collapse " aria-expanded=" false " class=" dropdown-toggle "><span
我认为该错误是由aria-expanded =定义中的空格调用的,因为我有刀片来源:
<a href="#manage_storage_submenu" data-toggle="@if($manage_storage) dropdown @else collapse @endif" aria-expanded="@if($manage_storage) true @else false @endif" class="@if(!$manage_storage) dropdown-toggle @endif"><span style="text-decoration: underline">Manage Storage</span></a>
但是,如果我删除aria-expanded =定义中的空间,则会出现刀片语法错误。会引起我的问题吗?哪种方法有效?
谢谢!