每次迭代显示文本 laravel Livewire
Display text on each iteration laravel Livewire
我需要你的帮助。假设我有一个包含 10 个元素的数组,每条记录都将在每次迭代中显示,我想用 Livewire 完成,让我与您分享一些代码并告诉您我有什么尝试到现在。
public $content;
public $array = ['first', 'second', 'third' ,'fourth'];
foreach ($array as $item) {
sleep(1);
$this->content[] = "Element ${item}";
}
<div class="modal-body">
@if ($content)
<ul class="listree">
@foreach ($content as $element)
<li>
<div class="listree-submenu-heading">
{!! $element['title'] !!}
</div>
<ul class="listree-submenu-items">
@foreach ($element['elements'] as $sub)
<li>
<div class="listree-submenu-heading">
{!! $sub['title'] !!}
</div>
</li>
@endforeach
</ul>
</li>
@endforeach
</ul>
@endif
</div>
我的想法是显示第一条记录,等待 1 秒,显示第一条和第二条记录,等待 1 秒,显示第一条、第二条和第三条记录,依此类推...我如何使用 livewire 做到这一点。问题是 $content
在所有迭代后填充了信息,然后刷新了组件。
我尝试在每次迭代中发送将调用刷新方法的自定义事件,但没有成功。我会感谢任何建议,如果您需要更多信息,我会提供。
假设您也在使用 alpinejs,这可以很容易地完成。
<x-app-layout>
<div class="text-gray-800 ml-10">
<ul class="bg-green-200">
<!-- The main foreach loop. -->
@foreach (range('a', 'z') as $element)
<!-- render al <li> tags with display:none. -->
<!-- Show the 1st after 0s, the 2nd after 1s, the 3rd after 2s, ... -->
<li class="bg-blue-200 m-5"
x-data="{show: false, index: {{ $loop->index }} }"
x-init="setTimeout(() => show = true, index * 1000)">
<div x-show="show">
{{ $element }}
...
</div>
</li>
@endforeach
</ul>
</div>
</x-app-layout>
$loop
是一个可以在 @foreach
块中访问的特殊对象。
我需要你的帮助。假设我有一个包含 10 个元素的数组,每条记录都将在每次迭代中显示,我想用 Livewire 完成,让我与您分享一些代码并告诉您我有什么尝试到现在。
public $content;
public $array = ['first', 'second', 'third' ,'fourth'];
foreach ($array as $item) {
sleep(1);
$this->content[] = "Element ${item}";
}
<div class="modal-body">
@if ($content)
<ul class="listree">
@foreach ($content as $element)
<li>
<div class="listree-submenu-heading">
{!! $element['title'] !!}
</div>
<ul class="listree-submenu-items">
@foreach ($element['elements'] as $sub)
<li>
<div class="listree-submenu-heading">
{!! $sub['title'] !!}
</div>
</li>
@endforeach
</ul>
</li>
@endforeach
</ul>
@endif
</div>
我的想法是显示第一条记录,等待 1 秒,显示第一条和第二条记录,等待 1 秒,显示第一条、第二条和第三条记录,依此类推...我如何使用 livewire 做到这一点。问题是 $content
在所有迭代后填充了信息,然后刷新了组件。
我尝试在每次迭代中发送将调用刷新方法的自定义事件,但没有成功。我会感谢任何建议,如果您需要更多信息,我会提供。
假设您也在使用 alpinejs,这可以很容易地完成。
<x-app-layout>
<div class="text-gray-800 ml-10">
<ul class="bg-green-200">
<!-- The main foreach loop. -->
@foreach (range('a', 'z') as $element)
<!-- render al <li> tags with display:none. -->
<!-- Show the 1st after 0s, the 2nd after 1s, the 3rd after 2s, ... -->
<li class="bg-blue-200 m-5"
x-data="{show: false, index: {{ $loop->index }} }"
x-init="setTimeout(() => show = true, index * 1000)">
<div x-show="show">
{{ $element }}
...
</div>
</li>
@endforeach
</ul>
</div>
</x-app-layout>
$loop
是一个可以在 @foreach
块中访问的特殊对象。