如何在混合中使用矩量格式?

时间:2018-12-15 06:57:49

标签: vuejs2 momentjs mixing

在我的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”方法发现了这个决定,但看起来是无效的。 哪个方法正确?

谢谢!

2 个答案:

答案 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