UNPKG

cheetah-framework

Version:

Cheetah Framework JS used in all our applications

51 lines (41 loc) 949 B
import moment from 'moment' let intervalTimes = 0 let keyGenerate = 1 const funs = {} export default { bind (el, binding, vnode) { el.innerHTML = moment(binding.value).fromNow() // only register once if (!vnode.$momentAgoKey) { vnode.$momentAgoKey = '' + keyGenerate++ funs[vnode.$momentAgoKey] = () => { el.innerHTML = moment(binding.value).fromNow() } runAutoUpdate() } }, update (el, binding) { el.innerHTML = moment(binding.value).fromNow() }, unbind (el, binding, vnode) { stopAutoUpdate(vnode.$momentAgoKey) } } function runAutoUpdate () { if (intervalTimes !== 0) return // only run once intervalTimes = setInterval(function () { for (var key in funs) { funs[key]() } }, 1000) } function stopAutoUpdate (key) { if (!key) { return } delete funs[key] if (_.isEmpty(funs)) { clearInterval(intervalTimes) intervalTimes = 0 } }