Angular.js中Ajax单一方法的体系结构

嗜好者

我想了解如何为多个控制器设计单个ajax方法,这也会影响用户界面(例如“加载”动画)。

想法是(没有承诺):

var myApp = angular.module('myApp', []);

myApp.controller('myCtrl',
    function myCtrl($scope, myFactory){
        $scope.loading = false;
        $scope.someStuff = myFactory.getStuff(params);
});

myApp.factory('myFactory', function(myService){
    return{
        getStuff: function(params){
            return myService.ajax(params);
        }
    }
});

myApp.service('myService', function($http) {
    this.ajax = function(params){
        // switch $scope.loading = true; 
        // make request
        // return $http result
        // switch $scope.loading = false; 
    };
});

据我所知,我需要使用$ scope进行UI更改,应将ajax方法带到自定义服务中。Angularjs中的服务无法与$ scope一起使用,我也不知道如何解决此问题。

我认为,必须有一个带有承诺链的服务。如何设计?

Upd:我希望,随着时间的流逝,文档将变得更加完整和清晰。但是有经验的用户社区已经很棒。谢谢。

MichałMiszczyszyn

在我的项目中,我定义了一个服务appState该服务具有(除其他方法外)方法:showGlobalSpinnerhideGlobalSpinner修改上的变量$rootScope

基本上:

(…)
.factory('appState', ['$rootScope', function ($rootScope) {
    return {
        showGlobalSpinner: function () {
            ++$rootScope.loadingInProgress;
        },
        hideGlobalSpinner: function () {
            if ($rootScope.loadingInProgress > 0) {
                --$rootScope.loadingInProgress
            }
        }
    };
}]);

接下来要做的是使用ng-show指令向需要的地方显示微调器

<div class="spinner" ng-show="loadingInProgress"></div>

在每次调用AJAX之前,AppState.showGlobalSpinner()以及在成功/错误之后,我都致电AppState.hideGlobalSpinner()

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

单一方法中的多个等待

来自分类Dev

单一方法中的多个等待

来自分类Dev

使用遮罩合并图像的单一方法

来自分类Dev

单一方法类与接口实现

来自分类Dev

在Angular 1.2及更高版本中,此体系结构仍然有效吗?

来自分类Dev

在ASP.Net MVC中以单一方法返回视图和文件

来自分类Dev

如何通过单一方法从不同索引中删除数组中的元素?

来自分类Dev

如何在基于JWT的单一登录身份验证体系结构中实现注销?

来自分类Dev

如何使用linq在单一方法中使聚合函数?

来自分类Dev

使用单一方法返回不同类型的数据

来自分类Dev

如何以单一方法返回int日期,月份,年份

来自分类Dev

使用哪种单一方法检查:空白?&& !错误的?

来自分类Dev

使用单一方法检测按钮阵列上的点击

来自分类Dev

运行时反射-使用单一方法提取符号

来自分类Dev

单一方法可产生多个新的Scanner返回

来自分类Dev

匿名和授权用户的Spring @RestController单一方法

来自分类Dev

通过单一方法但使用多个查询的数据库连接

来自分类Dev

使用单一方法从多个输入字段计算年龄

来自分类Dev

maven-surefire-plugin 运行单一方法,但在课堂上失败

来自分类Dev

JS体系结构的最佳方法?

来自分类Dev

导出angular.module中的angular 1.5方法.name

来自分类Dev

导出angular.module中的angular 1.5方法.name

来自分类Dev

defprotocol“没有单一方法”错误似乎是莱宁根的一个错误

来自分类Dev

如何在Angular JS中以单一形式创建多个组输入类型

来自分类Dev

从JavaScript函数调用angular2方法

来自分类Dev

从Observable <Xyz []>获取项目的Angular 2方法

来自分类Dev

.Net MVC 5中的Angular js结构

来自分类Dev

是“ eval”将JS“ switch”用作表达式的唯一方法吗?

来自分类Dev

在C#5中多次异步调用同一方法是否安全?

Related 相关文章

  1. 1

    单一方法中的多个等待

  2. 2

    单一方法中的多个等待

  3. 3

    使用遮罩合并图像的单一方法

  4. 4

    单一方法类与接口实现

  5. 5

    在Angular 1.2及更高版本中,此体系结构仍然有效吗?

  6. 6

    在ASP.Net MVC中以单一方法返回视图和文件

  7. 7

    如何通过单一方法从不同索引中删除数组中的元素?

  8. 8

    如何在基于JWT的单一登录身份验证体系结构中实现注销?

  9. 9

    如何使用linq在单一方法中使聚合函数?

  10. 10

    使用单一方法返回不同类型的数据

  11. 11

    如何以单一方法返回int日期,月份,年份

  12. 12

    使用哪种单一方法检查:空白?&& !错误的?

  13. 13

    使用单一方法检测按钮阵列上的点击

  14. 14

    运行时反射-使用单一方法提取符号

  15. 15

    单一方法可产生多个新的Scanner返回

  16. 16

    匿名和授权用户的Spring @RestController单一方法

  17. 17

    通过单一方法但使用多个查询的数据库连接

  18. 18

    使用单一方法从多个输入字段计算年龄

  19. 19

    maven-surefire-plugin 运行单一方法,但在课堂上失败

  20. 20

    JS体系结构的最佳方法?

  21. 21

    导出angular.module中的angular 1.5方法.name

  22. 22

    导出angular.module中的angular 1.5方法.name

  23. 23

    defprotocol“没有单一方法”错误似乎是莱宁根的一个错误

  24. 24

    如何在Angular JS中以单一形式创建多个组输入类型

  25. 25

    从JavaScript函数调用angular2方法

  26. 26

    从Observable <Xyz []>获取项目的Angular 2方法

  27. 27

    .Net MVC 5中的Angular js结构

  28. 28

    是“ eval”将JS“ switch”用作表达式的唯一方法吗?

  29. 29

    在C#5中多次异步调用同一方法是否安全?

热门标签

归档