第一个键上的角度执行功能和每个键上的另一个功能

时间:2015-07-28 20:26:09

标签: javascript angularjs haml

我正在尝试实施打字游戏。您键入给定单词的位置,并且它是您的时间。

一旦用户开始输入,我就会陷入想要进行函数调用以启动计时器的位置。

此外,每次用户输入时,我都会检查输入框的内容,看它们是否与给定的单词匹配。

以下是我的两个功能:

$scope.SpellCheck = function() {
  if($scope.newEntry.name == $scope.entries[$scope.count].sentence) {
    $scope.count += 1;
    $scope.newEntry.name = '';
  }
} 

$scope.Start = function() {
  $scope.stopwatch = $timeout(function() {
    $scope.value++;
    Start();
  }, 100);
}

我的观点

%div{ 'ng-controller' => 'TyperCtrl' }
  %form
    %input{'type' => 'text', 'autofocus' => 'true', 'ng-model'=>'newEntry.name', 'ng-keyup' => 'SpellCheck();Start();'}

  {{newEntry.name}}
  %h1
    {{value}}
  %br

  %ul
    %li
      {{entries[count].sentence}}

现在调用ng-keyup事件上的两个函数会导致计时器仅在有人输入时递增。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

我不太确定你的秒表的逻辑,但我会在你的Start()方法中添加一个辅助变量,在第一次调用Start()时设置它,然后在{Start()时检查它{1}}正在运行。这样秒表只启动一次。

var stopwatchRunning = false;
$scope.Start = function() {
    if (!stopwatchRunning) {
        $scope.stopwatch = $timeout(function() {
            $scope.value++;
            Start();
        }, 100);
        stopwatchRunning = true;
    }
}