2016-04-17 19 views
0

は、単純な構文エラーである必要がありますが、私はそれが代わりに番号/値のはNaNを取得する

コントローラーが何であるかを知らない:

$scope.startCounter=3; 

    $scope.startTimeouter = function (number) { 
     $scope.startCounter = number - 1; 
     mytimeouter = $timeout($scope.startTimeouter, 1000); 

     if($scope.startCounter<=0){ 
     $timeout.cancel(mytimeouter); 
     $scope.startTimeout(); 
     } 
     $scope.startTimerBtner=function(){ 
     $scope.startTimeouter(); 
    } 


    $scope.stopTimerBtner = function() { 
     $timeout.cancel(mytimeouter); 
    } 
    } 

HTML:

<a ng-click="startTimeouter(3);" >Click to Start Timer</a> 

そして結果は"3" .. "2" ... "NaN" ....どんな助けでも大いに感謝されます

答えて

2

あなたは何も渡していませんあなたのtimeoutの3210であるため、numberの値は未定義です。代わりに、関数を次のように設定してください。

$scope.startCounter=3; 

$scope.startTimeouter = function (number) { 
     $scope.startCounter = number - 1; 
     mytimeouter = $timeout(function(){$scope.startTimeouter($scope.startCounter)}, 1000); 

     if($scope.startCounter<=0){ 
     $timeout.cancel(mytimeouter); 
     $scope.startTimeout(); 
     } 
     $scope.startTimerBtner=function(){ 
     $scope.startTimeouter(); 
    } 


    $scope.stopTimerBtner = function() { 
     $timeout.cancel(mytimeouter); 
    } 

} 
関連する問題