在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/HTML5  HTML/ Angular4 訂單倒計(jì)時(shí)ts實(shí)現(xiàn)

Angular4 訂單倒計(jì)時(shí)ts實(shí)現(xiàn)

這個(gè)小功能當(dāng)前需求是,從服務(wù)器取一個(gè)時(shí)間值--秒數(shù),頁面刷新一次,取一次。比如第一次是1800秒,10分鐘后刷新,返回1200秒。前端頁面只管 倒計(jì)時(shí),時(shí)間清零,取消支付按鈕即可。
在component.ts里timer = setInterval(countDown, 1000);這句該如何處理,最終實(shí)現(xiàn)綁定?

===========================================================
簡單概括就是:刷新時(shí)讀取一個(gè) <= 1800 秒 的時(shí)間,做分、秒兩個(gè)字段的倒計(jì)時(shí)綁定到頁面,時(shí)間為0時(shí),執(zhí)行一個(gè)事件。

下面這種做法是不是太麻煩初級(jí)了???

export class TimerComponent implements OnInit {
  timeDown: any;
  constructor() { }
  ngOnInit() {
    this.timeDown = this.resetTime(list.time);  //假如list.time是返回時(shí)間
  }

  resetTime(time) {
    const timer = null;
    const t = time;
    let m: any;
    let s: any;
    let msg: any;
    m = Math.floor(t / 60 % 60);
    if (m < 10) {
      m = '0' + m;
    }
    s = Math.floor(t % 60);
    function countDown() {
      s--;
      if (m < 10) {
        s = '0' + s;
      }
      if (s.length >= 3) {
        s = 59;
        m = +(Number(m) - 1);
      }
      if (m.length >= 5) {
        m = '00';
        s = '00';
        clearInterval(timer);
      }
      console.log(m + '分鐘' + s + '秒');
      msg = m + '分鐘' + s + '秒';
      return msg;
    }
    timer = setInterval(countDown, 1000);
  }
}
回答
編輯回答
蔚藍(lán)色
resetTime(time: number) {
    function countdown() {
      var s = time % 60
      var m = Math.floor((time / 60)) % 60
      var msg = `${(m < 10 ? '0' : '') + m}分鐘${(s < 10 ? '0' : '') + s}秒`
      if (--time > 0) {
        setTimeout(countdown, 1000)
      } else {
        // 做結(jié)束的事
      }
    }
    countdown()
  }
2018年2月6日 09:11