【发布时间】:2020-08-30 16:20:40
【问题描述】:
表单中的所有输入都通过 v-model 绑定到 Vue 组件中的数据,如下所示
<validation-provider name="first_name" rules="required" v-slot="{ failed, errors }" :debounce="500">
<input type="text"
id="first_name"
name="first_name"
placeholder="First name"
class="form-control"
:class="{'is-invalid' : failed}"
:disabled="loading"
value="{{ auth()->user()->first_name }}"
tabindex="1"
v-model.trim="user.first_name"
>
<div class="invalid-feedback" v-show="failed">
@{{ errors[0] }}
</div>
如果有一个 value="{{ auth()->user()->first_name }}",v-model 不显示默认值,所以我试图像这样解决这个问题
data() {
return {
user: {
first_name: document.querySelector("input[name=first_name]").value,
},
loading: false
};
},
但我很确定这不是最好的方法。我试过寻找答案,但它们有点相同。最好的方法是什么?
【问题讨论】:
-
您正在使用
value道具,以及v-model,这是冲突的。v-model只不过是两个东西的组合,一个value属性和一个input事件监听器。在basic usage ofv-modelhere 上阅读更多信息。第一个提示还提到,当使用v-model时,value属性将被忽略。 -
是的,我确实读过这个,但也许我不明白。那么我是否应该只使用该值并尝试以另一种方式将输入绑定到数据属性,而不是使用 v-model?
-
使用 v-model 进行绑定。你不需要使用 value 属性。
-
我愿意。这是一个设置表单,所以我已经在数据库中保存了来自 laravel 的值,如果有的话我想显示这些值