棱角工厂多http promis

时间:2016-09-16 15:09:45

标签: angularjs

我需要创建一个有角度的工厂" MyConf"我喜欢在控制器中调用它的所有功能,如MyConf.getListPays()。

myConf工厂必须做多http请求,但是当我在控制器MyConf.getListPays()中写道时,我喜欢promis结果

demretApp.factory('MyConf', function($rootScope, $resource, Demande, $q) {
    // initialisation

    var doInit = true;

    var myConf = {};

    var adresse = {};
    var listPays = {};
    var listNationalites = {};

    myConf.getAdresse = function() {

        if (doInit) {
            initDonneesCommunes();
        }

        return adresse;

    };

    myConf.getListPays = function() {

        if (doInit) {
            initDonneesCommunes();
        }

        return listPays;
    };

    myConf.getListNationalites = function() {

        if (doInit) {
            initDonneesCommunes();
        }

        return listNationalites;
    };

    var initDonneesCommunes = function() {

        // $rootScope.startSpin('spinner-demret');
        // Préparation des resources
        var adresseResource = $resource(cfg.urlDDRRest + 'adresse/' + Demande.getID());
        var dcPaysResource = $resource(cfg.urlDDRRest + 'dc/pays');
        var dcNatioResource = $resource(cfg.urlDDRRest + 'dc/nationalites');

        return $q.all([ adresseResource.get().$promise, dcPaysResource.query().$promise, dcNatioResource.query().$promise]).then(function(resultats) {
            // retour OK : 

            adresse = resultats[0];
            listPays = resultats[1];
            listNationalites = resultats[2];

        }, function(resultatsKO) {
            //  KO
        })['finally'](function() {
            //
            doInit = false;
        });

    }

    return myConf;
});

我需要第一次调用getAdresse或getListPays或getListNationalites,或者当我初始化工厂时,我第一次做所有的http

但我需要当我调用我的工厂时,MyConf.getListPays()我得到的列表不像MyConf.getListPays()。然后(function(){...})...因为我使用MyConf。 _foreach(...)

中的getListPays()

感谢您的帮助

0 个答案:

没有答案