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

标签 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 服务有什么问题吗?我想通过在第二个 Controller 中完成 ajax 调用时传递条件值来隐藏由 mainController 控制的加载程序。

最佳答案

您请求服务的值(value),但您没有观察它的变化。因此,它很可能(取决于 Controller 初始化的顺序和时间)为 false 并保持为 false。

$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;
});

关于javascript - angularjs 服务在我的情况下不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32312018/

相关文章:

javascript - 无法加载 base64 图像

javascript - Cytoscape.js 网格布局不使用网格位置

javascript - 逻辑应用绕过筛选器查询中的 Null

javascript - 如何在 Angularjs 的其他文件中使用 Controller

rest - 如何使用 ng-resource 解析可选的 url 路径

javascript - 如何使用 angularjs 通过多重选择传递 JSON 对象

angularjs - JSON数据名称显示

javascript - 停止显示 :none 样式的 div 内的视频声音

javascript - 如何制作重置/清除单选按钮 JS 但除了 1 个单选按钮

javascript - 用于将引用字符串拆分为其组件的正则表达式