javascript - 在 Vue.Filter 中使用 Vue.Mixin 不起作用

标签 javascript vue.js vuejs2

[我正在使用最新的 vue 2.x、vuex 和 vue-cli 3]

我正尝试在 Vue 过滤器中使用 Mixin 来转换这个字符串

/Date(1546329600000)/

我从服务器获取到 java 脚本日期(以下代码在我的 main.js 文件中,就在我创建 Vue 实例之前):

// Mixins:
Vue.mixin({
    methods: {
        parseDateTicks: str => str.replace("/Date(", "").replace(")/", "")
    }
});


// Filters:
Vue.filter('dateTime', (date) => {
  if(date){
    //date = date.replace("/Date(", "").replace(")/", "");
    date = this.parseDateTicks(date);
    return new Date(+date).toLocaleString();
  }
  else{
    return '';
  }
});

不起作用的部分是

date = this.parseDateTicks(date);

我收到以下错误:

Error in render: "TypeError: Unable to get property 'parseDateTicks' of undefined or null reference"

这在 Vue.js 中是不可能的吗?

最佳答案

您无法在过滤器中访问它。过滤器应该是纯函数。 Source

关于javascript - 在 Vue.Filter 中使用 Vue.Mixin 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51411056/

相关文章:

javascript - Chrome : Auto-run for Javascript code?

javascript - Vue - 使用 axios 请求填充 Prop 的问题

javascript - 为什么我在 Vue.js 源代码中看到 TypeScript?

javascript - 单击元素时如何在 Firefox 中获取 VueJS $event?

vue.js - 按键删除对象不会更新vue组件

javascript - 尝试显示使用 php 和数据库检索的缩略图的全尺寸图像

Javascript Canvas 渲染方法在 IE11 中不起作用

javascript - 无效的 prop : type check failed for prop "title". 需要值为 ** 的字符串,得到值为 ** 的数字

node.js - 当我在 Laravel 项目中运行 npm install 时,它显示错误 - npm WARN deprecated gulp-util@3.0.8 : gulp-util is deprecated - replace it

javascript - 单击下拉按钮时侧边栏下拉菜单不会打开