页面加载后如何插入或更新js-timestamp组件?

问题描述 投票:0回答:1

背景:我正在使用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 vue.js sails.js
1个回答
0
投票

事实证明,我可以在与页面关联的JavaScript中定义一个变量,并将js-timestamp :at属性设置为变量名,而不是整数文字。然后,当变量更新时,页面也会更新。

代替此:

<js-timestamp :at="1573487792252">

我现在使用这个:

<js-timestamp :at="model.updatedAt">
© www.soinside.com 2019 - 2024. All rights reserved.