vue.js - 我无法使用 MomentJs 和 Vue 比较我的日期
问题描述
我想知道我的持续时间是否 > 0。我使用 MomentJs 和 Vue 使用以下代码获取我的持续时间:
moment3: function (date) {
var now = moment();
var day = moment(date);
var duration = day.diff(now);
return parseInt(duration);
},
我正确地得到了持续时间(例如 2987546325)。但是这段代码仍然不起作用。
<a v-if="event.time | moment3 > 0"> Do somethingHere </a>
谢谢你的帮助。
解决方案
我假设您正在尝试moment3
用作 Vue 过滤器功能。
这里有两个问题:
- 您不能在
v-if
表达式中使用过滤器函数。它们仅在 a{{ ... }}
orv-bind
表达式中可用。 - 除了函数的参数或另一个过滤器函数之外,您不能在过滤器函数之后放置任何内容。因此,
> 0
即使您在 a{{ ... }}
或中,也不允许使用v-bind
。
见https://vuejs.org/v2/guide/filters.html
在这种情况下,该|
字符将被解释为 JavaScript 的按位 OR 运算符。
您最好只使用一种方法。所以moment3
在你的组件内部定义methods
,然后使用v-if="moment3(event.time) > 0"
.
推荐阅读
- python - 从 csv (Python) 读取数据的问题
- xaml - Xamarin.Forms Shell 在后面的代码中生成一个 Top Tapped Page
- unit-testing - (如何)您是否在单元测试中测试您的依赖项?
- raku - 为什么这两个做同样事情的脚本之间存在如此大的性能差异?
- powershell - Export PowerShell prompt to remote session
- php - 如何解决 Yii2 中的未知数据库错误?
- grails - Grails,GORM - 绑定 OneToMany 数据时没有脏属性
- python - Python 将 ctypes 库与 math.h 一起使用,但答案始终为 0
- angular - Twilio 视频:track.attach 不是函数
- vue.js - 显示基于另一个选择的下拉列表