【问题标题】:selected option laravel livewire选择的选项 laravel livewire
【发布时间】:2022-01-12 15:05:19
【问题描述】:

我有一个下拉菜单,在编辑页面中我想显示旧输入。我使用此代码,但它仍然显示“请选择”。问题出在哪里?

<select wire:model.defer="form.department" id="form.department" class="tf-input">
    <option value="null" selected disabled>{{ __('Please select') }}</option>
    @foreach($this->departments as $department)
        <option {{ $form->department_id == $department->id ? 'selected' : '' }} value="{{ $department->id }}" >{{ $department->name }}</option>
    @endforeach
</select>

【问题讨论】:

  • 我试过了,不行

标签: laravel laravel-livewire


【解决方案1】:

当您使用wire:model 时,Livewire 不会侦听 HTML 中的 selected 属性,因为它会用组件中的值覆盖它。因此,将其完全删除。

<select wire:model.defer="form.department" id="form.department" class="tf-input">
    <option value="null" disabled>{{ __('Please select') }}</option>
    @foreach ($this->departments as $department)
        <option value="{{ $department->id }}" wire:key="department-{{ $department->id }}">{{ $department->name }}</option>
    @endforeach
</select>

如您所见,我删除了添加selected 的部分,但我还在选项中添加了wire:key - 这是因为元素是循环渲染的,这将有助于 Livewire 跟踪所有元素在页面上。

要设置通过wire:model绑定的值,需要在组件中设置值。所以在mount()方法中,你可以这样做

$this->form['department'] = $department->id;

【讨论】:

    猜你喜欢
    • 2021-08-22
    • 2021-08-18
    • 2021-06-30
    • 2021-05-25
    • 2021-11-10
    • 1970-01-01
    • 2021-04-11
    • 1970-01-01
    • 2020-06-04
    相关资源
    最近更新 更多