Vue.js 和 vue-moment:“无法解析过滤器:moment”

新手上路,请多包涵

尝试使用 vue-moment 。文档中最简单的示例不起作用: https ://jsfiddle.net/rjcpz9wt/

 <span>{{ new Date() | moment "dddd, MMMM Do YYYY" }}</span>

给出:

 [Vue warn]: Failed to resolve filter: moment

到底是怎么回事?

原文由 Kunto Handoko 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 474
2 个回答

vue-moment 坏了。

您不能通过将其添加为 <script> 标签来使用它。目前它只适用于使用 webpack 或 browserify 编译它,请参阅此 问题 以获取更新。

它曾经在原始版本上运行良好: https ://github.com/brockpetrie/vue-moment/tree/fd6fcb901415c1df4c5abb81870d49b346d3732f

请参阅此处的原始版本: https ://jsfiddle.net/gerardog/vaw33sn2/

此外,在 Fiddle 上不要链接到 https://raw.github.com/ 中的文件,使用这个很好的 解决方法

原文由 Gerardo Grignoli 发布,翻译遵循 CC BY-SA 3.0 许可协议

/////编辑/////

显然你根本不需要把 moment 放在 Vue.filter(....) 里面。

在你输入 Vue.use(VueMoment) 之后 main.js ,只需在你的应用程序的任何地方放置一个过滤器,如他们的文档所示,它就可以工作

//////////////

我遇到了同样的问题,通过不使用vue过滤器解决了

这是我的解决方法,我的 main.js 看起来像这样:

 import Vue from 'vue'
import VueMoment from 'vue-moment';

Vue.use(VueMoment)

在我需要使用 moment 的组件中,它看起来像这样:

 //IN METHODS:
methods: {
    tellTime(time) {
      console.log(this.$moment(time).format(' mm:ss'))
    }
}
 <!-- OR IN TEMPLATE -->
      {{$moment(timestamp).fromNow()}}

希望其他人会发现它有用:)

原文由 jonyB 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题