为什么vue-lang无法与filter一起使用?

时间:2019-06-25 14:57:23

标签: javascript vue.js

我使用vue-lang。它有效,但不完全

问题

在JSON文件中有一个示例:

"messages": "You have {0} {1} messages"

,然后将此代码作为过滤器

<p>{{$lang.messages | replace countmsg 'new'}}</p>

但是当我通过示例进行操作时,这里会出现错误

[Vue warn]: Failed to resolve filter: replace countmsg 'new'

我的文件

main.js

import Vue from 'vue'
import Lang from 'vue-lang'

const locales = {
  'cs': require('./lang/cs.json')
}

Vue.use(Lang, {lang: 'cs', locales: locales})

lang / cs.json

{
  "messages": "You have {0} {1} messages"
}

views / login.vue

<template>
  <p>{{$lang.messages | replace countmsg 'new'}}</p>
</template>

<script>
  export default {
  name: 'Login',
  data: function() {
    return {
      countmsg: 5
    }
 }
</script>

仍然无效。我在做什么错了?

1 个答案:

答案 0 :(得分:1)

我对这个特定的库不熟悉,但是使用这种过滤器的通常方法是:

{{ $lang.messages | replace(countmsg, 'new') }}

该过滤器的文档似乎已经有3年的历史,因此它可能已过时。调用过滤器的语法在一段时间前已更改:https://vuejs.org/v2/guide/migration.html#Filter-Argument-Syntax-changed