javascript - 需要简单的 Angular 函数解释

标签 javascript angularjs

我创建了一个简单的 Angular 函数。目的是在按下触发函数 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);
    }      
});

最佳答案

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>

关于javascript - 需要简单的 Angular 函数解释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40830984/

相关文章:

javascript - AJAX 重新加载页面而不插入数据库

php - 为什么这个 Ajax 渲染需要这么长时间?

javascript - 在 ng-repeat 之后执行 jQuery 函数

javascript - 如何在 Apollo 中组合多个 fetchMore 函数?

javascript - 检测并解析 Amazon Lex 调度机器人的 "2-4pm"等格式的时间范围

javascript - 如何在 React Native 中的当前屏幕上显示 FlatList 时主动刷新它?

javascript - 可以在 AngularJs 中设置 base 标签的 href 属性吗?

javascript - 使用服务器数据初始化 html 选项卡失败

javascript - 如何在 Angular 1.5 组件的回调函数中处理这个问题?

javascript - sails.js:如何查找模型内的项目?