在任何状态下解析UI路由器
Resolve UI-Router on any state
有没有办法让AngularJS
中ui-route
的stateprovider
在任何路由被击中时执行resolve
。
我在想类似的事情:
$stateProvider
.state('signin', {
url: "/signin",
templateUrl: 'app/modules/signin/signin.html',
controller: 'signinController',
resolve: {
reset: function (Master, Storage) {
Master.reset();
Storage.set('preventSigninLeave', true);
}
}
})
.state('menu', {
url: "/menu",
templateUrl: 'app/modules/menu/menu.html',
controller: 'menuController',
resolve: {
config: function (Config) {
return Config.get()
.then(function(response){
return response;
})
.catch(function(error){
console.error(error);
return undefined;
});
},
reset: function (Master) {
Master.reset();
}
}
})
.state('view', {
url: '/view/:view',
templateUrl: 'app/view/view.html',
controller: 'viewController',
resolve: {
config: function (Config) {
return Config.get()
.then(function(response){
return response;
})
.catch(function(error){
console.error(error);
return undefined;
});
}
}
})
.always({
resolve: {
message: function () {
return 'hey Bub';
}
}
});
还是必须在每次调用的state
中设置变量?
我通常通过使用状态继承来实现这一点,这种方式解析的属性只"解析"一次,除非用户退出父状态。我通常创建一个名为"app"的父抽象状态,并使我的所有状态从中继承,这样,如果我需要为所有状态引入一个已解析的属性,我只需添加它。
如果无法重命名和更新状态树(可能您定义了几个状态),我会使用angular.extend或jQuery.extend,这样您就可以将"始终"属性定义为一个单独的对象,并根据需要使用它。
相关文章:
- 有没有任何方法可以将控制器从文件加载到ui路由器$stateProvider中
- AngularJS UI路由器不能像ng路由器那样工作
- AngularJS ui路由器html5模式中断路由
- EJS中的Angularjs-Ui路由器参数
- 使用AngularJS中的UI路由器将状态重定向到默认子状态
- 如何在ui路由器angularjs中只更改子ui视图,同时保持父视图不变
- 在UI路由器中以抽象状态填充常见视图
- angularjs中带有ui路由器的嵌套视图
- 当需要身份验证时,ui路由器不会重定向
- Ui路由器:获取控制器中视图的名称
- 在Angular ui路由器中,如何将事件从一个视图发送到另一个视图
- 带有嵌套状态的Angular ui路由器和后退按钮
- 如何加载嵌套3个状态的UI路由器UI视图模板
- Angular ui路由器中的绝对名称
- Ui路由器未显示嵌套的子内容
- ui路由器的惰性加载状态
- 访问url[材质Ui+选项卡]时,Angular Ui路由器未加载视图
- AngularJS UI路由器未进入默认状态
- Angular UI路由器-检查父状态
- 状态更改期间角度UI路由器中的嵌套视图滞后