我有一个AngularJS应用程序,可以显示这样的持续时间" 2分钟前"基于时间戳数据。
如何实时更新?没有使用windows.setInterval
,我想知道它是否可以做得更多"棱角分明"
免责声明:我是AngularJS的新手
答案 0 :(得分:0)
最直接的事情是创建一个指令:
app.directive("minutesAgo", function($interval) {
var MINUTE = 60000;
function updateMinutes(scope) {
scope.minutes = Math.floor((Date.now() - new Date(scope.startTime)) / MINUTE);
scope.pluralizedMinutes = scope.minutes < 1 ? "Less than a minute" :
scope.minutes +
(scope.minutes == 1 ? " minute" : " minutes");
}
return {
restrict: "AE",
scope: {
startTime: "="
},
template: "<span>{{pluralizedMinutes}} ago</span>",
link: function(scope, element) {
updateMinutes(scope);
$interval(function() {
updateMinutes(scope);
}, MINUTE);
}
};
})
这可以在具有控制器的元素内部使用,该控制器指定时间戳,如下所示:
<minutes-ago start-time="timestamp"></minutes-ago>
您可以尝试on Plunker。