Buefy datepicker with Laravel:预期日期,获取字符串
我有一个表单,由从API请求到后端接收的数据填充 我使用v-model将数据绑定到字段(例如): 然后我使用Axios.get从服务器获取数据并将其分配给fields对象,如下所示:Buefy datepicker with Laravel:预期日期,获取字符串,laravel,vue.js,buefy,Laravel,Vue.js,Buefy,我有一个表单,由从API请求到后端接收的数据填充 我使用v-model将数据绑定到字段(例如): 然后我使用Axios.get从服务器获取数据并将其分配给fields对象,如下所示: this.fields = response.data; 这是如何在Vue DevTools中查看fields.budget_date的: 你知道如何克服这个问题吗?提前谢谢你。终于明白了 警告非常清楚:这里不要使用字符串,使用日期对象。 因此,从服务器获得响应后,我将字符串值解析为Date对象,然后将其绑定到
this.fields = response.data;
这是如何在Vue DevTools中查看fields.budget_date的:
你知道如何克服这个问题吗?提前谢谢你。终于明白了 警告非常清楚:这里不要使用字符串,使用日期对象。 因此,从服务器获得响应后,我将字符串值解析为Date对象,然后将其绑定到v-model:
this.fields.budget_date = new Date(this.fields.budget_date)
现在,我将其输入Vue开发工具:
正如您所看到的,预算日期的日期格式正确,而创建日期的格式是字符串
解析器函数(:dateparser)在用户日期选择期间为您提供正确的日期对象
我想要的是根据存储在数据库中的数据设置v-model值。要使b-datepicker正常工作,需要是日期对象,而不是字符串。我刚刚在Buefy的
b-datepicker
组件的包装器组件中遇到了这个问题
解决方案可以从Christossang的答案中推导出来,该答案是传入包装在new Date()
中的初始值
我的包装器组件道具类型如下所示:
initialValue: {
type: Date,
required: false,
default: () => undefined,
},
<my-datepicker
:initial-value="new Date(something.renews_on)"
></my-datepicker>
它是这样使用的:
initialValue: {
type: Date,
required: false,
default: () => undefined,
},
<my-datepicker
:initial-value="new Date(something.renews_on)"
></my-datepicker>
你可以在这里调查默认的道具:我认为问题在于
v-model=“fields.order_date”
是不是因为fields对象不像普通的数据道具那样是被动的?我不明白你的意思,请分享你的数据对象data(){…}
@bousadjrahim请查看更新。只是将订单日期更改为预算日期以匹配图像。
<my-datepicker
:initial-value="new Date(something.renews_on)"
></my-datepicker>
<b-datepicker
v-model="value"
:initial-value="initialValue"
:placeholder="placeholder"
:name="name"
:date-formatter="dateFormatter"
:date-parser="dateParser"
:date-creator="dateCreator"
... etc
dateFormatter: {
type: Function,
required: false,
default: date => date.toLocaleDateString(),
},
dateParser: {
type: Function,
required: false,
default: date => new Date(Date.parse(date)),
},
dateCreator: {
type: Function,
required: false,
default: () => new Date(),
},