angularjs服务在我的情况下不起作用

时间:2015-08-31 13:05:52

标签: javascript angularjs

下面是一个元素在我的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控制的加载器。

1 个答案:

答案 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;
});