1

我有一个我设置的按钮ng-click="refresh()"。超时功能正确记录之前的控制台日志,但块内和$timeout块之后的控制台日志似乎没有记录。如果我删除$timeout块每个控制台日志都有效。我什至检查了$interval而不是$timeout相同的行为。

我想在这里做这样的事情

我正在使用 Angular.js 1.4.0

这是我在控制器内部的实现

      $scope.refreshing ={state: false};
      $scope.refresh = function(){
        console.log($scope);
        $scope.refreshing.state = true;
        $scope.search(); //sends an http request and loads results.
        console.log('this logs');
        // $scope.refreshing.state = false;
        $timeout(function(){
           console.log('this doesnt log')
           $scope.refreshing.state = false;
         },2000);
        console.log('this doesnt log')

      }
4

1 回答 1

1

您需要确保您的依赖注入已正确连接。例如:

angular
    .module("MyApp")
    .controller("MyController", ["$scope", "$timeout", MyController]);

function MyController($scope, $timeout) {
    // controller code
}

有关控制器的一些最佳实践,请参阅John Papa 的 AngularJS 样式指南。

于 2022-02-08T14:41:49.783 回答