我希望在为AngularJS应用的默认视图加载任何HTML之前,根据AngularJS应用中REST API的响应加载不同的网页(如:google.com)。
我已经尝试在工厂中进行REST服务调用并在我的应用程序的.run函数中使用响应,但在页面重定向之前我能够看到Angular App的HTML视图。
var app = angular.module('myApp',[]);
app.run(function(myService,$window) {
myService.someFunc().then(function(data){
$window.location.href = 'http://www.google.com';
});
});
app.factory('myService',function($http,$window,$q){
var self = this;
this.someFunc = function someFunc (){
var deffered = $q.defer();
$http.get('someAPI').success(function(data){
deffered.resolve(data)
}).error(function(error){
deffered.reject(error)
});
return deffered.promise;
}
return self;
}):
答案 0 :(得分:0)
我认为这是一个你不应该用艰难的方法解决的问题。从角度来看似乎很难,但更重要的是,这对用户来说是一种糟糕的体验。
我建议在页面加载时使用整页覆盖,为用户写一些不错的东西,也许是ajax加载图标等等,这样用户就知道他在等待某个原因并且页面不仅慢。然后,当你的ajax调用返回时,它会消失,每个人都很高兴:)