我有一个按钮,我已经为它设置了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')
}
您需要确保依赖项注入连接正确。例如:
angular
.module("MyApp")
.controller("MyController", ["$scope", "$timeout", MyController]);
function MyController($scope, $timeout) {
// controller code
}
有关控制器的一些最佳实践,请参阅John Papa的AngularJS风格指南。