我需要创建一个有角度的工厂" 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()感谢您的帮助