Angularjs toState的http$interceptor$状态属性
我目前有一个httpInterceptor,我可以通过以下方式访问当前状态名称:Angularjs toState的http$interceptor$状态属性,angularjs,angular-ui-router,angular-http-interceptors,Angularjs,Angular Ui Router,Angular Http Interceptors,我目前有一个httpInterceptor,我可以通过以下方式访问当前状态名称: $injector.get('$state').current.name 但我想要的是它的状态,我也找不到它的财产 $injector.get('$state').unknown // what is the **toState** property 为了进一步说明,我使用ionic和Im在请求上显示一个加载指示器,它允许我在一个点上加载$ionicLoading .factory('loaderInterce
$injector.get('$state').current.name
但我想要的是它的状态,我也找不到它的财产
$injector.get('$state').unknown // what is the **toState** property
为了进一步说明,我使用ionic和Im在请求上显示一个加载指示器,它允许我在一个点上加载$ionicLoading
.factory('loaderInterceptor', ['$rootScope', '$injector', function ($rootScope, $injector) {
return {
request: function(config) {
$rootScope.$broadcast('loading:show', $injector.get('$state').current.name);
return config;
},
response: function(response) {
$rootScope.$broadcast('loading:hide');
return response;
}
};
}])
$rootScope.$on('loading:show', function(e, fromState) {
var loadingOptions = {
template: '<i class="icon ion-loading-c"></i>\n<br/>\nloading...',
};
if(fromState === 'login')
{
var loadingOptions = {
template: '<i class="icon ion-loading-c"></i>\n<br/>\nSigning in...',
animation: 'fade-in',
};
}
$ionicLoading.show(loadingOptions)
});
$rootScope.$on('loading:hide', function() {
$ionicLoading.hide()
});
.factory('loaderInterceptor',['$rootScope','$injector',函数($rootScope,$injector){
返回{
请求:函数(配置){
$rootScope.$broadcast('loading:show',$injector.get('$state').current.name);
返回配置;
},
响应:功能(响应){
$rootScope.$broadcast('loading:hide');
返回响应;
}
};
}])
$rootScope.$on('load:show',函数(e,fromState){
变量加载选项={
模板:'\n
\n正在加载…',
};
如果(fromState==='login')
{
变量加载选项={
模板:'\n
\n正在登录…',
动画:“淡入”,
};
}
$ionicLoading.show(加载选项)
});
$rootScope.$on('loading:hide',function()){
$ionicLoading.hide()
});
我想根据to和from状态有选择地更改加载指示器文本,以便将$ionicLoading保留在一个位置。您应该观察(收听)
$stateChangeStart
。检查此处的一些链接为什么要根据状态更改$http
的行为?我觉得这不是个好主意。我宁愿围绕$http
编写函数,在每个状态的控制器中显式地使用不同的行为。我实际上使用它来显示和隐藏rest请求上的加载指示器,方法是在$rootScope上广播一个事件来侦听。$broadcast('loading:show',data);