在我的Ionic应用程序中,我在应用程序的开始处加载所有数据(通过http请求)。离子加载数据THEN显示主页
我想确保所有的http请求都完成,然后显示主页。同时,这个想法是显示一个加载屏幕。
这样做的最好方法是什么?
angular.module('App.Common', [])
.service('myData', function($http, API_URL) {
this.initData = function() {
self.getDataType2(); //calls http request
self.getDataType2(); //calls http request
self.getDataType3(); //calls http request
self.getDataType4(); //calls http request
self.getDataType5(); //calls http request
self.getDataType6(); //calls http request
};
});
angular.module('App.Home', [])
.controller('Ctrl', function(myData) {
myData.initData();
});
而在我的home.html,而initData()没有完成,我显示一个加载页面。
我知道装载部分将使用此代码
$ionicLoading.show({
content: 'Loading',
animation: 'fade-in',
showBackdrop: true,
maxWidth: 200,
showDelay: 0
});
但如何/何时使用
$ionicLoading.hide();
任何帮助,将不胜感激
你的意思是这样? let promise = [promiseAlpha(),promiseBeta(),promiseGamma()]; ((values)=> {console.log(values [0]); // value_alpha console.log(values [1]); // value beta console( ) 。日志(值[2]); // value gamma complete(); }); – Doapper
不幸的是,承诺没有挂起标志,所以你必须自己跟踪挂起/加载状态。你也可以考虑解决一个状态定义,因为控制器和模板被推迟到解决承诺完成为止,但是这会阻止你显示加载屏幕,除非你使之成为“中间”状态......不典型。 – shaunhusain
但是我应该用什么来代替myData.initData(); ? – Doapper