Hub*_*NNN 6 components laravel laravel-blade
是否可以将变量从组件传递到插槽中。这是一个例子:
{{-- index.blade.php --}}
@component('slider', ['entities' => [0, 1, 2]])
@slot('title')
Slider title
@endslot
@slot('slide')
Slider content no {{ $entity }}
@endslot
@endcomponent
{{-- slider.blade.php --}}
<h1>{{ $title }}</h1>
<ul>
@foreach($entities as $entity)
<li>{{ $slide }}</li>
@endforeach
</ul>
Run Code Online (Sandbox Code Playgroud)
当前结果:
异常:未定义$ entity
预期结果:
<h1>Slider title</h1>
<ul>
<li>Slider content no 0</li>
<li>Slider content no 1</li>
<li>Slider content no 2</li>
</ul>
Run Code Online (Sandbox Code Playgroud)
似乎没有办法将数据从组件传递到插槽上下文。这也是与本案@section
/ @yield
。
我发现的是@each
函数。https://laravel.com/docs/5.6/blade#rendering-views-for-collections
您需要为列表项内容创建另一个视图部分(item
在此处调用)。
{{-- index.blade.php --}}
@component('slider', ['entities' => [0, 1, 2], 'item_view' => 'item'])
@slot('title')
Slider title
@endslot
@endcomponent
{{-- item.blade.php --}}
<li>
Slider content no $entity
</li>
{{-- slider.blade.php --}}
<h1>{{ $title }}</h1>
<ul>
@each($item_view, $entities, 'entity')
</ul>
Run Code Online (Sandbox Code Playgroud)
示例:制作具有不同内容的新滑块:
{{-- gallery.blade.php --}}
@component('slider', ['entities' => ['a.png', 'b.png', 'c.png'], 'item_view' => 'gallery_item'])
@slot('title')
Gallery
@endslot
@endcomponent
{{-- gallery_item.blade.php --}}
<li>
<img src={{ $entity }} />
</li>
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
4519 次 |
最近记录: |