Javascript Angularjs$超时未执行

Javascript Angularjs$超时未执行,javascript,angularjs,angularjs-directive,timeout,settimeout,Javascript,Angularjs,Angularjs Directive,Timeout,Settimeout,我是Angularjs的新手,希望在页面加载后添加一个计时器。我在这里读了很多类似的问题,但我仍然无法解决我的问题。我将数据ng init=“init()”添加到我的视图中。 这是控制器: 'use strict'; angular.module('tempApp') .controller('MainController',['$scope','$timeout','dService', function ($scope,$timeout, dService) {

我是Angularjs的新手,希望在页面加载后添加一个计时器。我在这里读了很多类似的问题,但我仍然无法解决我的问题。我将
数据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:

这里,dService是我将要使用的单独的服务js文件。任何帮助都将不胜感激

 '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()

您可能还需要显式调用$scope.init()

添加'dService'

.controller('MainController',['$scope','$timeout', 'dService', function ($scope,$timeout, dService) {
和使用一样

$timeout(callAtTimeout,3000);
添加“数据服务”

.controller('MainController',['$scope','$timeout', 'dService', function ($scope,$timeout, dService) {
和使用一样

$timeout(callAtTimeout,3000);
你可以试试这个吗

'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();
 }]);
你可以试试这个吗

'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();
 }]);

问题是$scope.init()中的额外括号


问题是$scope.init()中的额外括号


试验
"严格使用",;
角度。模块('tempApp',[])
.controller('MainController',['$scope','$timeout',函数($scope,$timeout){
$scope.init=函数(){
控制台日志(“安全检查状态页面加载”);
$timeout(callAtTimeout,3000);
};
函数callAtTimeout(){
控制台日志(“安全检查状态***”);
}
$scope.init();
}]);

试验
"严格使用",;
角度。模块('tempApp',[])
.controller('MainController',['$scope','$timeout',函数($scope,$timeout){
$scope.init=函数(){
控制台日志(“安全检查状态页面加载”);
$timeout(callAtTimeout,3000);
};
函数callAtTimeout(){
控制台日志(“安全检查状态***”);
}
$scope.init();
}]);
如果要设置计时器,为什么需要

$timeout
将执行一次

试试看

以下是变化:

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

          console.log("Safety checkStatus ***");
        }
如果您想设置计时器,下面是您需要的工作原因

$timeout
将执行一次

试试看

以下是变化:

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

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


这是工作指南

感谢您的支持。我也试过了,但运气不好。请检查我编辑的答案是否有更改$timeout()@urvashi`我添加了数据ng init=“init()”`你不需要明确地称它为yes,这也是正确的,因为html代码不在这里,所以我添加了'may':)@ZuseeWeekin:检查这里。我更新了你的小提琴。现在警报显示出来了。您收到一个错误,因为该服务未在小提琴中定义。感谢您的支持。我也试过了,但运气不好。请检查我编辑的答案是否有更改$timeout()@urvashi`我添加了数据ng init=“init()”`你不需要明确地称它为yes,这也是正确的,因为html代码不在这里,所以我添加了'may':)@ZuseeWeekin:检查这里。我更新了你的小提琴。现在警报显示出来了。您收到一个错误,因为该服务未在小提琴中定义。感谢您的支持。但它仍然没有像预期的那样工作。对不起。一个问题。。。为什么使用}]);两次?嗯……对不起,是打字错误谢谢,这对我有用。但是为什么它会起作用呢?最初我有$timeout($scope.callAtTimeout(),1000);然后我将其更改为$timeout(函数(){$scope.callAtTimeout()},1000);它开始工作了。谢谢你的支持。但它仍然没有像预期的那样工作。对不起。一个问题。。。为什么使用}]);两次?嗯……对不起,是打字错误谢谢,这对我有用。但是为什么它会起作用呢?最初我有$timeout($scope.callAtTimeout(),1000);然后我将其更改为$timeout(函数(){$scope.callAtTimeout()},1000);它开始工作了。我的视图中有数据ng init=“init()”。然后不需要调用控制器,但删除额外的括号@ZuseeWeekinmm。。抱歉,这是打字错误。)我的视图中有数据ng init=“init()”。然后无需调用控制器,但删除额外的括号@ZuseeWeekinmm。。抱歉,这是打字错误。)