Javascript 我怎样才能把一个普通的JS秒表转换成有角度的?

Javascript 我怎样才能把一个普通的JS秒表转换成有角度的?,javascript,angularjs,intervals,angular-promise,Javascript,Angularjs,Intervals,Angular Promise,JS新增,如果不允许,将删除。我有一些常规的JS代码,我一直在尝试将其转换为控制器 对于给定的示例,什么是最优化的方法。我见过指令、计数器等案例,但我认为这对于我所做的工作来说是非常复杂的。到目前为止,我已经成功地将秒和十绑定到屏幕上,但是我在更新的$interval方面遇到了问题,我是否需要.watch、.promises。然后呢?(很抱歉提出新问题,任何帮助都会很好) JS脚本 window.onload = function() { var seconds = 00;

JS新增,如果不允许,将删除。我有一些常规的JS代码,我一直在尝试将其转换为控制器

对于给定的示例,什么是最优化的方法。我见过指令、计数器等案例,但我认为这对于我所做的工作来说是非常复杂的。到目前为止,我已经成功地将秒和十绑定到屏幕上,但是我在更新的$interval方面遇到了问题,我是否需要.watch、.promises。然后呢?(很抱歉提出新问题,任何帮助都会很好)

JS脚本

   window.onload = function() {

     var seconds = 00;
     var tens = 00;
     var appendTens = document.getElementById("tens");
     var appendSeconds = document.getElementById("seconds");
     var buttonStart = document.getElementById('button-start');
     var buttonStop = document.getElementById('button-stop');
     var buttonReset = document.getElementById('button-reset');
     var Interval;


     buttonStart.onclick = function () {

       clearInterval(Interval);
       Interval = setInterval(startTimer, 10);
     };

     buttonStop.onclick = function () {
       clearInterval(Interval);
     };


     buttonReset.onclick = function () {
       clearInterval(Interval);
       tens = "00";
       seconds = "00";
       appendTens.innerHTML = tens;
       appendSeconds.innerHTML = seconds;
       console.log("clear()");
     };


     function startTimer() {
       tens++;

       if (tens < 9) {
         appendTens.innerHTML = "0" + tens;
       }

       if (tens > 9) {
         appendTens.innerHTML = tens;

       }

       if (tens > 99) {
         console.log("seconds");
         seconds++;
         appendSeconds.innerHTML = "0" + seconds;
         tens = 0;
         appendTens.innerHTML = "0" + 0;
       }

       if (seconds > 9) {
         appendSeconds.innerHTML = seconds;
       }

     }

   };
window.onload=function(){
var秒=00;
var tens=00;
var appendTens=document.getElementById(“tens”);
var appendSeconds=document.getElementById(“秒”);
var buttonStart=document.getElementById('button-start');
var buttonStop=document.getElementById('button-stop');
var buttonReset=document.getElementById('button-reset');
var区间;
buttonStart.onclick=函数(){
间隔时间;
间隔=设置间隔(起始时间,10);
};
buttonStop.onclick=函数(){
间隔时间;
};
buttonReset.onclick=函数(){
间隔时间;
tens=“00”;
秒数=“00”;
appendTens.innerHTML=tens;
appendSeconds.innerHTML=秒;
log(“clear()”);
};
函数startTimer(){
tens++;
如果(十位数<9){
appendTens.innerHTML=“0”+tens;
}
如果(十位数>9){
appendTens.innerHTML=tens;
}
如果(十位数>99){
控制台日志(“秒”);
秒++;
appendSeconds.innerHTML=“0”+秒;
tens=0;
appendTens.innerHTML=“0”+0;
}
如果(秒>9){
appendSeconds.innerHTML=秒;
}
}
};
这就是我将HTML绑定到屏幕的方式


{{seconds+”:“+tens}}

我用一个简单的
$interval
循环来设置它,它更新秒和分钟:

angular.module('plunker', []).controller('MainCtrl', function($interval) {
  var interval_;

  this.seconds = 0;
  this.minutes = 0;

  this.start = function() {
    interval_ = $interval(function() {
      this.seconds++;
      if(this.seconds > 59) {
        this.seconds = 0;
        this.minutes++;
      }
    }.bind(this), 1000)
  }

  this.stop = function() {
    $interval.cancel(interval_)
  }
})
.filter('adjustTime', function(){
  return function(input) {
    if(input < 10) {
      return '0' + input;
    }
    return input;
  }
});
angular.module('plunker',[]).controller('MainCtrl',function($interval){
var区间;
这1.5秒=0;
这1.5分钟=0;
this.start=函数(){
间隔=$interval(函数(){
这个.seconds++;
如果(本秒>59){
这1.5秒=0;
这个.minutes++;
}
}.绑定(这个),1000)
}
this.stop=函数(){
$interval.cancel(interval\ux)
}
})
.filter('adjustTime',函数(){
返回函数(输入){
如果(输入<10){
返回“0”+输入;
}
返回输入;
}
});
我是委托的粉丝,所以我做了一个过滤器,你可以看到,如果它小于10,就添加额外的0;无需弄乱
$interval
逻辑


您知道,
按钮将在此处而不是在Plnkr处创建一个代码段吗?还有
.filter('adjustTime',function(){return function(input){return String(“0”+input”)。slice(-2);}
我没有。谢谢@mplungjan@mplungjan你能描述一下.filter函数的作用吗?
.filter('adjustTime',function(){return function(input){return String(“0”+input).slice(-2);}
Pad一个数字:如果input是2个字符,则取包含3个字符的字符串的最后2个字符-11->011->11;3->03->03如果注释掉所有代码,则它(a)不会运行,并且(b)当向其他人显示时,不会突出显示语法。删除每行前面的
/
。修复了**CMD/(我假设windows使用CTRL)通常是某些IDE上的快捷方式来修复此问题