gpt4 book ai didi

javascript - VueJS 表单输入绑定(bind)

转载 作者:行者123 更新时间:2023-12-03 03:14:03 25 4
gpt4 key购买 nike

嘿,我是 Vue 的初学者,只有在使用 foreach 循环时才遇到这个问题
问题:每当我选择任何复选框时,所有复选框都会被选中。

创建.blade.php

  @foreach ($permissions as $permission)
<li class="list-group-item bold">
<input type="checkbox" id="{{$permission->id}}"
:custom-value="{{$permission->id}}" v-model="permissionsSelected">
<label for="{{$permission->id}}">{{$permission->display_name}}
<em>{{$permission->description}}</em></label>
</li>
@endforeach
</ul>
<input type="hidden" name="permissions" :value="permissionsSelected">



<script>
var app = new Vue({
el: '#app',
data: {
permissionsSelected: ''
}
});
</script>

最佳答案

你的问题似乎是<input>失踪了:value=".." 。此外,permissionsSelected 应该是一个数组: permissionsSelected: []

我建议你不要混合 Laravel Blade @foreach与 vue.

改为传递$permissions到 javascript 并使用 vue 渲染列表。您可以在 this answer 中查看如何执行此操作

还有一件事,来自 Laravel 文档

Since many JavaScript frameworks also use "curly" braces to indicate a given expression should be displayed in the browser, you may use the @ symbol to inform the Blade rendering engine an expression should remain untouched

这是更新后的示例

<div id="app">
<ul>
<li class="list-group-item bold" v-for="permission in permissions">
<input
type="checkbox"
:id="permission.id"
:value="permission.id"
v-model="permissionsSelected"
>
<label :for="permission.id">@{{ permission.display_name }}
<em>@{{ permission.description }}</em>
</label>
</li>
</ul>
<input type="hidden" name="permissions" :value="permissionsSelected">
</div>

<script>
var permissions = JSON.parse("{{ json_encode($permissions) }}");

var app = new Vue({
el: '#app',
data: {
permissions: permissions,
permissionsSelected: [],
}
});
</script>

关于javascript - VueJS 表单输入绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46843264/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com