0

我是Angularjs的新用戶,希望在頁面加載後添加計時器。我在這裏閱讀了許多類似的問題,但仍無法解決我的問題。我將data-ng-init="init()"添加到了我的視圖中。 這是控制器:

'use strict'; 

    angular.module('tempApp') 
     .controller('MainController',['$scope','$timeout','dService', function ($scope,$timeout, dService) { 

     $scope.init = function(){ 
      console.log("Safety checkStatus page load"); 
      $timeout(callAtTimeout(),3000); 
     } 


    function callAtTimeout(){ 
     console.log("Safety checkStatus ***"); 
    } 

}]); 

的jsfiddle:https://jsfiddle.net/Zusee/s6xy48t0/9/

這裏dService是單獨的服務js文件,我將使用。任何幫助,將不勝感激。

回答

0
'use strict'; 

     angular.module('tempApp') 
      .controller('MainController',['$scope','$timeout','dService', function ($scope,$timeout, dService) { 

      $scope.init = function(){ 
       console.log("Safety checkStatus page load"); 
       $timeout(function() { 
        callAtTimeout() 
       }, 3000); 
      } }]); 


     function callAtTimeout(){ 
      console.log("Safety checkStatus ***"); 
     } 

    }]); 

你也可能需要調用$ scope.init()明確

+0

感謝您的支持。我也嘗試過,沒有運氣。 –

+0

請檢查我編輯的答案更改$ timeout() – urvashi

+0

@urvashi'我添加了data-ng-init =「init()」'你不需要明確地叫它 –

0

增加 'dService'

.controller('MainController',['$scope','$timeout', 'dService', function ($scope,$timeout, dService) { 

而且使用像

$timeout(callAtTimeout,3000); 
1

你可以試試這個?

'use strict'; 

    angular.module('tempApp') 
     .controller('MainController',['$scope','$timeout','dService', function ($scope,$timeout, dService) { 

     $scope.init = function(){ 

      console.log("Safety checkStatus page load"); 

      $timeout(function() { 
        $scope.callAtTimeout(); 
      }, 1000); 

     } 


     $scope.callAtTimeout = function(){ 
      console.log("Safety checkStatus ***"); 
     } 

     $scope.init(); 
}]); 
+0

感謝您的支持。但它仍然沒有按預期工作。 –

+0

對不起。一個問題......爲什麼你使用}]);兩次? –

+0

mm..sorry這是錯字。 : –

0

問題是$ scope.init額外的括號()

$scope.init = function(){ 
    console.log("Safety checkStatus page load"); 
    $timeout(function() { 
      callAtTimeout(); 
    }, 3000); 
}; 
+0

在我看來,我有data-ng-init =「init()」。 –

+0

然後無需在控制器中調用,但刪除了額外的括號@ZuseeWeekin –

+0

毫米。這是錯誤。 :) –

1
<!DOCTYPE html> 
<html ng-app="tempApp"> 
<head> 
    <title>Test</title> 
    <script src="angular.min.js"></script> 
</head> 
<body ng-controller="MainController"> 
<script type="text/javascript"> 
     'use strict'; 

      angular.module('tempApp', []) 
      .controller('MainController',['$scope','$timeout', function ($scope,$timeout) { 

       $scope.init = function(){ 
        console.log("Safety checkStatus page load"); 

        $timeout(callAtTimeout, 3000); 
       }; 
       function callAtTimeout(){ 
         console.log("Safety checkStatus ***"); 
        } 

$scope.init(); 
     }]); 
</script> 
</body> 
</html> 
0

爲什麼你需要$timeout如果你想要設置的定時器。

$timeout將執行一次。

試用$interval

這裏的變化:

$scope.init = function() { 
      console.log("Safety checkStatus page load"); 
      $interval($scope.callAtTimeout, 1000); 
     } 
     $scope.callAtTimeout = function() { 

      console.log("Safety checkStatus ***"); 
     } 

這裏是工作plunker