需要简单的角度函数解释

时间:2016-11-27 16:11:47

标签: javascript angularjs

我创建了一个简单的角度函数。目的是在按下一个触发函数startAction的按钮后显示变量x的变化值。它不起作用,我不明白为什么。

var app = angular.module("myApp", []);
app.controller('myController', ($scope, fabryka) => {

$scope.startAction = function () {
    setInterval(function () {
        var x = 0;
        $scope.x = (function () {
            x++;
            return x;
        })();
    }, 500);
    }      
});

1 个答案:

答案 0 :(得分:3)

Angular有自己的setInterval包装器:$interval

当您按下按钮时,这段代码计算秒数。请注意范围销毁时的间隔取消。

angular.module('app', [])
  .controller('mainCtrl', function($scope, $interval) {
    var vm = this;

    vm.x = 0;

    var interval;

    vm.startAction = function() {
      vm.isRunning = true;
      interval = $interval(function() {
        vm.x++;
      }, 1000);
    };

    vm.stopAction = function() {
      vm.isRunning = false;
      $interval.cancel(interval);
    }

    $scope.$on('$destroy', vm.stopAction);

    return this;
  });
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="app" ng-controller="mainCtrl as vm">
  <div>x: {{vm.x}}</div>
  <button ng-click="!vm.isRunning? vm.startAction():vm.stopAction()">{{vm.isRunning? 'Pause':'Start'}}</button>
</div>