Javascript 只发射一次?

Javascript 只发射一次?,javascript,angularjs,Javascript,Angularjs,看,我的密码 我想每滴答增加100次延迟时间,但似乎只触发一次。我不太明白这一点。它发射一次,但不会重复 var gravity = angular.module('gravity', []); function GravCtrl($interval) { this.acceleration = 9.8; this.elapsedTime = 0; this.speed = 0; this.$interval = $interval;

看,我的密码

我想每滴答增加100次延迟时间,但似乎只触发一次。我不太明白这一点。它发射一次,但不会重复

var gravity = angular.module('gravity', []);

    function GravCtrl($interval) {
      this.acceleration = 9.8;
      this.elapsedTime = 0;
      this.speed = 0;
      this.$interval = $interval;
    }

    GravCtrl.prototype.start = function() {
      this.counter = this.$interval(function(that) { 
        that.elapsedTime += 100;
        that.speed = ( that.elapsedTime / 1000.0 ) * that.acceleration;
        console.log('thing firing');
      }(this), 100)
    };

    gravity.controller('GravCtrl', GravCtrl);

调用函数并将
undefined
传递给
$interval
。从那里删除
(this)
,并在interval调用的正上方添加
var=this
。您正在立即调用它,而不是提供对间隔的函数引用。快速查看控制台应该会发现一些信息。我需要能够从间隔内访问GravCtrl对象中的变量。如果不以某种方式将它们传递到函数中,它们将不可用。如何访问间隔内的变量?@opticon请参阅我上面的评论,
var that=this
并从
函数(that)
中删除
that
。如果要使用
this
,请执行
。绑定(this)
,而不是
(this)
。您应该阅读。您调用函数并将
undefined
传递给
$interval
。从那里删除
(this)
,并在interval调用的正上方删除
var=this
。您正在立即调用它,而不是提供对间隔的函数引用。快速查看控制台应该会发现一些信息。我需要能够从间隔内访问GravCtrl对象中的变量。如果不以某种方式将它们传递到函数中,它们将不可用。如何访问间隔内的变量?@opticon请参阅我上面的评论,
var that=this
并从
函数(that)
中删除
that
。如果要使用
this
,请执行
。绑定(this)
,而不是
(this)
。你应该读书。