vue过滤器在括号内不起作用

时间:2019-09-30 15:18:53

标签: vue.js

我正在尝试在else语句的替代方案中呈现过滤后的var。

<span>{{ myVar ? (myVar | date('DATETIME_SHORT')) : '-' }}</span>

这给我一个错误

Error in render: "TypeError: _vm.date is not a function"

如果我在不使用条件语句的情况下渲染var

<span>{{ myVar | date('DATETIME_SHORT') }}</span>

如果我再次删除括号,那将不起作用

{{ myVar ? myVar | date('DATETIME_SHORT') : '-' }}

如何解决此问题?

1 个答案:

答案 0 :(得分:1)

过滤器必须出现在表达式的末尾。过滤器之后唯一可以出现的就是另一个过滤器。

https://vuejs.org/v2/guide/filters.html

  

过滤器应附加到JavaScript表达式的末尾

如果将|放在表达式的中间,它将被视为JavaScript |运算符,按位或。

您有两个选择:

  1. 定义一个新的包含条件的过滤器。如果您不想在全局范围内注册,则可以在组件上本地定义过滤器。
  2. 改为使用方法。