作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我这里有这段代码
self.timestamp = ko.observable(data.timestamp);
self.dateFromNow = ko.computed(function ()
{
return moment(self.timestamp()).fromNow();
}, self);
self.timestamp
只是一个 unix 时间戳
self.dateFromNow
看起来像 44 years ago
或 1 minute ago
我的目标是 self.dateFromNow
重新计算每个设定的时间间隔。
这些属性绑定(bind)到 HTML <time>
元素,但我不想通过使用 JS/jQuery 遍历元素并重新计算来进行重新计算。我认为更好的方法是在每个设置的时间间隔简单地重新计算 KnockoutJS 中的值,然后让 KO 更新标记。
有没有办法在 KnockoutJS 中做到这一点?
更新:我所做的就是这样代替张贴者的回答
setInterval(function() {
$.each(self.foo(), function(index, item) {
item.timestamp.notifySubscribers();
});
}, 60 * 1000); // 60 * 1000 milsec
最佳答案
处理此问题的另一种方法是,每当另一个可观察值更改值时重新评估计算值,该值按时间间隔更改。听起来很疯狂?
var fireEvaluations = ko.observable(0);
// Somewhere after the DOM is ready
setInterval(function () {
fireEvaluations(fireEvaluations() + 1);
}, 6000);
var someOtherObservable = ko.computed(function () {
// Subscribe to the triggering observable
if (fireEvaluations()) { }
// Do your real code
});
现在所有具有类似 if (fireEvaluations()) { } 的计算将在该值更改后重新评估。
关于javascript - KnockoutJS - 以设定的时间间隔重新计算计算值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18994510/
我想成为 Spark 纱客户(link)。是否需要安装hadoop?还是只安装 yarn 可以吗? (by this link) 最佳答案 No Spark不需要Hadoop即可运行。 Apache
我是一名优秀的程序员,十分优秀!