Php 嵌套叶片布局,截面名称重叠
因此,我的应用程序有一个可以管理“缺陷”的区域,还有一个可以管理“资产”的区域。一项资产可以有多个缺陷。当您选择一个缺陷时,它会显示该资产,我希望能够单击该资产,并打开一个对话框,其中的视图与您使用刀片模板在“资产”页面上单击资产时得到的视图相同 我已经成功地做到了这一点,但我不得不使用黑客后,试图修复它使用纯刀片数小时 我有一些布局,第一个是带有sidenav的页面布局,sidenav用于显示实体列表,然后我有一个实体布局,该实体有一个工具栏和一个要查看的实体区域 这是我的sidenav页面布局:Php 嵌套叶片布局,截面名称重叠,php,laravel,laravel-blade,Php,Laravel,Laravel Blade,因此,我的应用程序有一个可以管理“缺陷”的区域,还有一个可以管理“资产”的区域。一项资产可以有多个缺陷。当您选择一个缺陷时,它会显示该资产,我希望能够单击该资产,并打开一个对话框,其中的视图与您使用刀片模板在“资产”页面上单击资产时得到的视图相同 我已经成功地做到了这一点,但我不得不使用黑客后,试图修复它使用纯刀片数小时 我有一些布局,第一个是带有sidenav的页面布局,sidenav用于显示实体列表,然后我有一个实体布局,该实体有一个工具栏和一个要查看的实体区域 这是我的sidenav页面布
<div layout="column" flex ng-controller="{!! $ngController !!}" axs-on-show>
<div layout="row" flex>
@yield('sidebar')
@yield('content')
</div>
@yield('dialogs')
</div>
@php
$sectionPrefix = isset($sectionPrefix) ? $sectionPrefix : '';
@endphp
<div layout="column" flex @if(isset($ngController))ng-controller="{!! $ngController !!}"@endif axs-on-show>
<div flex layout="column" layout-align="center center" ng-if="!{!! $entity !!}">
<md-progress-circular md-mode="indeterminate" ng-if="{!! $entity !!} === undefined">. </md-progress-circular>
<div layout="column" layout-align="center center" ng-if="{!! $entity !!} === null">
<span>Error Loading {{ $entityName }}</span>
<md-button ng-click="{!! $refresh !!}">
<md-icon>refresh</md-icon>
</md-button>
</div>
</div>
<div flex layout="column" ng-if="{!! $entity !!}">
@yield($sectionPrefix.'toolbar')
@yield($sectionPrefix.'entity')
</div>
@yield($sectionPrefix.'dialogs')
@产量('侧边栏')
@产量(‘含量’)
@产生('对话框')
这是我的实体页面布局:
<div layout="column" flex ng-controller="{!! $ngController !!}" axs-on-show>
<div layout="row" flex>
@yield('sidebar')
@yield('content')
</div>
@yield('dialogs')
</div>
@php
$sectionPrefix = isset($sectionPrefix) ? $sectionPrefix : '';
@endphp
<div layout="column" flex @if(isset($ngController))ng-controller="{!! $ngController !!}"@endif axs-on-show>
<div flex layout="column" layout-align="center center" ng-if="!{!! $entity !!}">
<md-progress-circular md-mode="indeterminate" ng-if="{!! $entity !!} === undefined">. </md-progress-circular>
<div layout="column" layout-align="center center" ng-if="{!! $entity !!} === null">
<span>Error Loading {{ $entityName }}</span>
<md-button ng-click="{!! $refresh !!}">
<md-icon>refresh</md-icon>
</md-button>
</div>
</div>
<div flex layout="column" ng-if="{!! $entity !!}">
@yield($sectionPrefix.'toolbar')
@yield($sectionPrefix.'entity')
</div>
@yield($sectionPrefix.'dialogs')
@php
$sectionPrefix=isset($sectionPrefix)$节前缀:“”;
@endphp
.
加载{{$entityName}时出错
刷新
@收益率($sectionPrefix'toolbar')
@收益率($sectionPrefix'entity')
@产量($sectionPrefix'dialogs')
你可以忽略@sectionPrefix的东西,这是我用来让它工作的方法。“对话”部分的理由是,我的对话必须存在于AngularJS控制器中才能控制它们,以防您感到奇怪
因此,考虑到这两种布局。我为缺陷视图构建了刀片,如下所示:
封闭式刀片服务器使用sidenav列表管理缺陷刀片
@extends('layouts.pages.sidebar_layout.layout',['ngController'=>'manageDefectsController']))
@节(“侧栏”)
@包括(“部件、维护、缺陷、管理缺陷、布局、侧边栏”)
@覆盖
@节(“内容”)
选择缺陷以查看更多详细信息
@包括(“部件、维护、缺陷、缺陷、缺陷”)
@覆盖
单个缺陷的实体视图一旦选中,这就是上面包含的内容(_partials.maintenance.defects.defect.defect)
@extends('layouts.pages.entity_layout.layout',
[
'ngController'=>'defectController',
'entity'=>'defectDataService.defect',
'entityName'=>'Defect',
'refresh'=>'defectDataService.refreshDefect'
])
@节(“工具栏”)
@包括(“部件、维护、缺陷、缺陷、布局、工具栏”)
@覆盖
@第节(“实体”)
//此处是资产的html视图,其中包含一个按钮,用于打开对话框,资产视图如下所示:
@覆盖
@节(“对话框”)
@包括(“\u partials.maintenance.assets.asset.asset”,[“sectionPrefix”=>“from defect”])
@覆盖
如果你已经走到了这一步,你仍然感兴趣,我的问题是,没有这个$sectionPrefix解决方案,这些部分都是一团糟的。基本上_partials.maintenance.assets.asset.asset也有一个“dialogs”部分,然后覆盖上面的部分,这意味着应该打开的实际对话框永远不在DOM中。我知道这很让人困惑,我正在努力将我观察到的所有不同行为用语言表达出来
我之所以使用@overwrite,是因为这是我以前在网上找到的建议,@endsection不起作用,因为那时任何名为“dialogs”的子节都不会被使用/呈现
这是一个令人费解的问题,请随意否决,但是否有人有过刀片的经验,即多次嵌套同一布局,以及您如何处理分区名称中出现的问题@覆盖显然修复了这个问题,但在我的例子中,这只是覆盖了从最深层到最高层的所有内容,使得它同样具有破坏性和无用性。谢谢