我正在尝试实施打字游戏。您键入给定单词的位置,并且它是您的时间。
一旦用户开始输入,我就会陷入想要进行函数调用以启动计时器的位置。
此外,每次用户输入时,我都会检查输入框的内容,看它们是否与给定的单词匹配。
以下是我的两个功能:
$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事件上的两个函数会导致计时器仅在有人输入时递增。
非常感谢任何帮助。
答案 0 :(得分:0)
我不太确定你的秒表的逻辑,但我会在你的Start()
方法中添加一个辅助变量,在第一次调用Start()
时设置它,然后在{Start()
时检查它{1}}正在运行。这样秒表只启动一次。
var stopwatchRunning = false;
$scope.Start = function() {
if (!stopwatchRunning) {
$scope.stopwatch = $timeout(function() {
$scope.value++;
Start();
}, 100);
stopwatchRunning = true;
}
}