Php 如何在laravel livewire中应用select2,在多刀片文件中使用1个组件

Php 如何在laravel livewire中应用select2,在多刀片文件中使用1个组件,php,laravel,laravel-livewire,Php,Laravel,Laravel Livewire,刀片文件 index.blade.php form.blade.php 我尝试在index.blade.php中应用select2,但当我尝试在form.blade.php中应用select2时,它不起作用。我不知道是什么问题。一旦看不到任何代码,我就不知道是什么导致了问题。但是,鉴于我在select2和Livewire方面的经验,我将与您分享我的编码。这是一个简单的组件和刀片相关的示例。 组成部分 **Component File** class PurchaseRequests extend

刀片文件 index.blade.php form.blade.php


我尝试在index.blade.php中应用select2,但当我尝试在form.blade.php中应用select2时,它不起作用。我不知道是什么问题。

一旦看不到任何代码,我就不知道是什么导致了问题。但是,鉴于我在select2和Livewire方面的经验,我将与您分享我的编码。这是一个简单的组件和刀片相关的示例。 组成部分

**Component File**
class PurchaseRequests extends Component
}

 public $show = 'index';

 public function create()
 {
    $this->reset();
    $this->method = 'store';
    $this->show = 'form';
 }

 public function render()
 {
   return view('livewire.purchase_requests.'.$this->show);
 }
}
public $models;
public $selected_item;
protected $listeners = ['selected_select2_item'];  // this listen for the select2 emitted event 

public function hydrate()  // hydrate the select2 element on every re-render
{
   $this->emit('select2');
}

public function mount()
{
  $this->models = Model::all();
}

public function render()
{
   //......
}

public function selected_select2_item($value)  // function load from listener
{
   dd($value); 
}
在刀片组件中

**Component File**
class PurchaseRequests extends Component
}

 public $show = 'index';

 public function create()
 {
    $this->reset();
    $this->method = 'store';
    $this->show = 'form';
 }

 public function render()
 {
   return view('livewire.purchase_requests.'.$this->show);
 }
}
public $models;
public $selected_item;
protected $listeners = ['selected_select2_item'];  // this listen for the select2 emitted event 

public function hydrate()  // hydrate the select2 element on every re-render
{
   $this->emit('select2');
}

public function mount()
{
  $this->models = Model::all();
}

public function render()
{
   //......
}

public function selected_select2_item($value)  // function load from listener
{
   dd($value); 
}
@节(“内容”)
//......
@foreach($models作为$model)
{{$model->name}
@endforeach
//......
@端部
@节(“自定义脚本”)
$(文档).ready(函数(){
window.initSelectDrop=()=>{
$(“#选择2_元素”)。选择2({
占位符:'--选择模型--',
allowClear:true});
}
initSelectDrop();
$(“#选择2_元素”)。在('change',函数(e)上{
livewire.emit('selected\u select2\u item',例如target.value)
});
window.livewire.on('select2',()=>{
initSelectDrop();
});
}); 
@端部

希望这段代码能像以前一样帮助你

你能分享刀片代码吗?你在每把刀锋上都有选择元素吗?@Prospero我尝试了不同的方法,选择2现在起作用了。我为索引和表单创建了不同的组件。我现在的问题是,我有一个动态字段,而select2没有应用。你知道吗?谢谢