$ scope变量不会在$ interval函数内更新

时间:2015-06-22 14:41:36

标签: javascript angularjs angularjs-scope

我正在使用$interval作为自定义秒表。在$interval函数中,我有一个变量$scope.inputValue,它绑定到一个范围。问题是,在$interval(每500毫秒)的每次迭代之后,不考虑最近的$ scope.inputValue,而只考虑初始化时的值(1000)。

如何解决这个问题?

控制器

.controller('DashCtrl', function($scope, $interval) {

    var interval, incrementTimer;

    $scope.inputValue       = 1000;

    //
    //
    incrementTimer = function() {
        userValue = $scope.inputValue; 
        console.log(userValue); // does not update when range changes
    };


    //
    // button toggle
    $scope.toggleTimer = function() {
        interval = $interval(incrementTimer, 500);
    };

})

HTML

<input type="range" min="0" max="2000" step="100" ng-model="inputValue">

<button class="button button-positive" ng-click="toggleTimer()">Start</button>

2 个答案:

答案 0 :(得分:1)

问题可能不在ng-model中使用点。可能有一个父节点创建的继承范围,其中包含问题中发布的HTML。

另见:

答案 1 :(得分:1)

对我来说,问题可能是关于你们所谈到的那些点。 但是,我需要删除控制器上的公告:

<ion-view view title="bla bla" ng-controller="tabletStayInTouchCtrl" on-touch="onTouch()"> 

不得不改为:

<ion-view view title="bla bla"  on-touch="onTouch()"> 

我猜这是导致问题的家长控制器。