下面是一个元素在我的mainController
中<img src="loader.gif" ng-hide="done_ajax"/>
我的js看起来像这样
//service
app.service('request_service', function(){
this.finished = false;
});
//main ctonroller
app.controller('mainController', ['$scope','request_service', function($scope,request_service){
$scope.ajaxed = request_service.finished;
}]);
// second controller
app.controller('secondController', ['$scope','request_service', function($scope,request_service){
callAPI("getUser", {
method: "GET"
}).success(function (resp) {
$scope.$apply(function () {
request_service.finished = true;
});
});
我对angularjs服务的使用有什么问题?我想通过在我的第二个控制器中完成ajax调用时传递条件值来隐藏由mainController控制的加载器。
答案 0 :(得分:1)
您要求提供服务的价值,而不是在观看更改。因此,很可能(取决于控制器初始化的顺序和时间)是错误的并保持错误。
$scope.ajaxed = request_service.finished;
如果您想知道request_service.finished何时更改,则应该是watched:
$scope.isFinished = aService.isFinished;
$scope.$watch(function() { return aService.isFinished; }, function(newV, oldV) {
$scope.isFinished = newV;
});