【问题标题】:Trix editor doesn't show up when used inside a @if condition在 @if 条件中使用时,Trix 编辑器不显示
【发布时间】:2021-08-18 17:13:03
【问题描述】:

在larave8 livewire中我想使用trix编辑器在livewire组件上创建一个bladeview InfoletterCrud如下

<div class="container ml-auto mr-auto p-10 min-h-screen">
  <div class="page-title ">{{ $page_title }}</div>
  <div class="button-line flex flex-col">
    @if ($isEditMode)
      @if ($showMode)
        @include('livewire.show-infoletter')
      @else
        @include('livewire.create-infoletter')
      @endif
    @else
      <div>
        <button wire:click="create()" class="button-cancel text-white font-bold py-2 px-4 rounded my-3">Ajouter une info-lettre</button>
      </div>
      @if (count($infoletters) > 0)
        <table class="w-full table-fixed admin-stripped-table">
          <thead>
            <tr class="w-full">
              <th class="w-1/12">Id</th>
              <th class="w-10/12">Titre</th>
              <th class="w-1/12">Actions</th>
            </tr>
          </thead>
          <tbody>
            @foreach ($infoletters as $infoletter)
              <tr>
                <td>{{ $infoletter->id }}</td>
                <td>{{ $infoletter->title }}</td>
                <td>
                  <div style="display:flex">
                    <button
                      wire:click="show({{ $infoletter->id }})"
                      class="fontawesome-icon">
                      <span data-toggle="tooltip" title="Voir" class="fa fa-paper-plane fa-xs "></span>
                    </button>
                    <button
                      wire:click="edit({{ $infoletter->id }})"
                      class="fontawesome-icon">
                      <span data-toggle="tooltip" title="Modifier" class="fa fa-edit fa-xs "></span>
                    </button>
                    <button
                      wire:click="$emit('openModal', 'livewire-modal', {{ json_encode(['type' => 'L\'infolettre', 'ident' => $infoletter->id]) }})"
                      class="fontawesome-icon">
                      <span data-toggle="tooltip" title="Supprimer" class=" fa fa-trash fa-xs "></span>
                    </button>
                  </div>
                </td>
              </tr>
            @endforeach
          </tbody>
        </table>,
      @else
        <p>Il n'y a aucune info-lettre</p>
      @endif
    @endif
  </div>
</div>

当我将带有 @livewire('trix') 的 trix 组件放在 @if (isEditMode) 测试上方时,它会显示出来。但这不是我想要的,因为我没有处于编辑模式。

如果我将它放在 livewire.create-infoletter 包含中,它不会显示。 即使我将它放在 @if (isEditMode) 测试之后,它也不会显示出来。

有什么问题

【问题讨论】:

    标签: laravel laravel-livewire trix


    【解决方案1】:

    您没有显示您的组件以及如何初始化 Trix,所以这只是一个猜测。我假设您正在使用 Alpinejs 执行此操作,并且在 @if 条件执行时,Alpine 已经进行了其 DOM 更新。尝试使用 $nextTick 调用您的初始化函数 - 请参见此处:https://alpinejs.dev/magics/nextTick

    【讨论】:

    • 谢谢。我通过在布局中放置 js CDN 和 CSS CDN 解决了​​这个问题。它有效。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-08-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-27
    • 2019-11-24
    • 2019-09-18
    相关资源
    最近更新 更多