首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在AngularJS中处理多个解决方案

在AngularJS中处理多个解决方案
EN

Stack Overflow用户
提问于 2016-04-05 17:46:56
回答 1查看 44关注 0票数 1

我遇到了这样的问题,我一半的控制器依赖被解决了,在注入服务后,我最终得到了7-8个参数。

解决:

代码语言:javascript
复制
resolve{

     first_data:function(){},
     second_data: function(){},
     third_data: function(){}


}

控制器:

代码语言:javascript
复制
function homeCtrl(first_data, second_data, third_data, ModalService, $state, $timeout, homeService, dataService){

})

有没有办法把所有的解析都放到一个参数中?

EN

回答 1

Stack Overflow用户

发布于 2016-04-05 20:59:44

$q怎么样?

代码语言:javascript
复制
let promises = [promiseAlpha(), promiseBeta(), promiseGamma()];

$q.all(promises).then(values => {
    console.log(values[0]); // value alpha
    console.log(values[1]); // value beta
    console.log(values[2]); // value gamma

    complete();
});

或者甚至是:

代码语言:javascript
复制
let promises = {
    alpha: promiseAlpha(),
    beta: promiseBeta(),
    gamma: promiseGamma()
}
$q.all(promises).then(values => {
    console.log(values.alpha); // value alpha
    console.log(values.beta); // value beta
    console.log(values.gamma); // value gamma

    complete();
});

致词:http://www.martin-brennan.com/using-q-all-to-resolve-multiple-promises/

问题是?是first_data http调用吗?如果是这样,请使用上面的解决方案。如果first_data是一些包含数据的容器,只需将其移动到service,并在您想要调用此服务的任何地方调用该服务,例如:

service.js

代码语言:javascript
复制
(function () {
    'use strict';

    angular
        .module('app')
        .service('DashboardService', DashboardService);

    DashboardService.$inject = ['$http'];

    function DashboardService($http) {

        var _this = this;

        _this.first_data = function () {
            return [{id: 1, content: "some data"}];
        };

        return _this;
    }

}());

controller.js

代码语言:javascript
复制
(function () {
    'use strict';

    angular
        .module('app')
        .controller('DashboardCtrl', DashboardCtrl);

    DashboardCtrl.$inject = ['$scope', 'DashboardService'];

    function DashboardCtrl($scope, DashboardService) {

        var _this = this;

        _this.first_data = DashboardService.first_data;
    }
}());
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36422766

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档