背景:我正在使用SailsJS框架来显示数据模型更新的时间戳。该框架来自他们称为“ parasails”的东西,它使用Vue.js。它提供<js-timestamp :at="1573487792252">
组件来显示类似“几秒钟前”的消息,该消息会随着时间的流逝而自动更新。随着时间的流逝,“时间自”消息将动态更新,因此可能会显示“ 5分钟前”之类的信息。同时,可以更新项目中的基础模型,并将该更新通过WebSocket传递给浏览器。发生这种情况时,我想更新<js-timestamp>
以反映新的参考时间戳。
问题:当HTML首次加载时,parasails用<js-timestamp>
替换了<span parasails-component="js-timestamp">
元素,其中包含文字“从此开始的时间”消息,而不是整数时间戳。大概,parasails将该整数存储在JavaScript变量中。我曾尝试使用JQuery插入新的<js-timestamp>
,但parasails不能流行。标记保留在DOM中,但不会使用“时间间隔”消息进行更新。从source code组件的js-timestamp
中可以看到,当时间戳少于24小时时,它使用moment(this.at).fromNow()
来获取“时间自”消息,但是如果我使用它并手动替换文本,随着时间的流逝,它不再自行更新。
问题:什么是更新时间戳的正确方法,以便随着时间的流逝,帆帆(或Vue.js或其他)继续更新消息?
事实证明,我可以在与页面关联的JavaScript中定义一个变量,并将js-timestamp :at
属性设置为变量名,而不是整数文字。然后,当变量更新时,页面也会更新。
代替此:
<js-timestamp :at="1573487792252">
我现在使用这个:
<js-timestamp :at="model.updatedAt">