【问题标题】:wire:click call two methods at once连线:单击一次调用两个方法
【发布时间】:2021-02-28 12:11:41
【问题描述】:

我对@9​​87654321@ 事件有疑问,我想知道如何一键调用两个方法。 试了好几次都没有成功,也没有在文档中找到任何信息 所以我的例子:

在这种情况下返回method setItem is not defined,但方法是在 Livewire 组件中定义的

wire:click="$emitTo('assign-modal', 'show-assign-modal'); setItem({{$book->id}})"

第二种情况: 在这种情况下,我不工作是正常的,但我决定给一个机会,试试会发生什么

wire:click="$emitTo('assign-modal', 'show-assign-modal')" wire:click="setItem({{$book->id}})"

第三种情况: 在这种情况下,我尝试使用自定义事件调用该方法,但仍然没有成功

wire:click="$emitTo('assign-modal', 'show-assign-modal'); $emitSelf('setData', {{$book->id}})"

我还有一个想法,将数据传递给第一个自定义事件assing-modal,然后将数据返回给父组件,但我认为这个想法很糟糕,所以任何帮助都会受到重视。

【问题讨论】:

    标签: javascript php laravel laravel-7 laravel-livewire


    【解决方案1】:

    解决方法:使用wire:clik 操作将按钮括起来,如下所示:

    <span wire:click="printAll()">
        <button class="btn btn-primary" wire:click="$emit('showLoader')">
            Print All ?️
        </button>
    </span>
    

    【讨论】:

      【解决方案2】:

      你不能调用wire:click中的2个函数

      所以在这种情况下你应该这样做

      wire:click="setItem({{$book->id}})"
      

      在组件中

      public function setItem($bookId)
      {
          $emitTo('assign-modal', 'show-assign-modal'); 
      }
      

      【讨论】:

        猜你喜欢
        • 2023-04-01
        • 1970-01-01
        • 1970-01-01
        • 2017-09-24
        • 2016-10-18
        • 2010-09-28
        • 1970-01-01
        相关资源
        最近更新 更多