在我的laravel 5.7 / vuejs 2.5应用程序中,我使用矩库从db格式化日期时间 它在我的组件中有效,但是当我尝试在混合中将矩包裹为带参数的函数时出现错误。 package.json:
{
"private": true,
"devDependencies": {
"axios": "^0.18",
"vue": "^2.5.17"
...
},
"dependencies": {
"vue-moment": "^4.0.0",
"vue-router": "^3.0.1",
"vuex": "^3.0.1"
...
}
}
在resources / js / app.js中:
import Vue from 'vue';
...
import moment from 'vue-moment'
Vue.use(moment)
在我的组件中:
<template>
...
<hr>
<!-- THIS LINE WORKS OK-->
<span>{{ nextCategory.created_at | moment("dddd, MMMM Do YYYY") }}</span>;
<hr>
<!-- {{ momentDatetime(nextCategory.created_at,'Do MMMM, YYYY h:mm:ss A') }} -->
...
</template>
<script>
import {bus} from '../../app';
import appMixin from '../../appMixin';
export default {
name: 'list',
mixins: [appMixin],
</script>
但是如果取消注释最后一行,我会报错
[Vue warn]: Error in render: "TypeError: __WEBPACK_IMPORTED_MODULE_0_vue_moment___default(...) is not a function"
以及在resources / js / appMixin.js中:
import moment from 'vue-moment'
export default {
methods: {
...
momentDatetime(datetime, datetime_format, default_val) {
return moment(datetime).format(datetime_format);
},
...
我在net中使用“ .format”方法发现了这个决定,但看起来是无效的。 哪个方法正确?
谢谢!
答案 0 :(得分:1)
您使用的是vue-moment而不是矩,因此,在package.json中,通过在终端npm安装时运行时刻,或在yarn.moment中添加矩,然后在package.json中,您应该会看到矩相关性
还可以将mixin中的导入更改为从'moment'导入时刻。
答案 1 :(得分:1)
也许像其他答案一样,您必须使用moment而不是vue-moment。
最新版本的moment也存在问题,此处发布的解决方案之一已降级到2.18.1,也许vue-moment正在使用其他版本。
检查此帖子时出现与您的问题相同的错误: https://github.com/moment/moment/issues/4229
他们还引用了另一个问题: https://github.com/moment/moment/issues/4216