当加载主状态时,我正在使用以下代码来解析资源.是否可以重新解析资源而不重新加载页面?我避免重新加载,以便用户体验不受影响.
- $stateProvider
- .state('main',{
- url: '/',templateUrl: 'publicApp/main.html',controller: 'MainCtrl as mainCtrl',resolve: {
- userData: ["UserApi",function (UserApi) {
- return UserApi.getUserData().$promise;
- }]
- }
- })
- .controller('MainCtrl',function (userData) {
- console.log(userData.something);
- })
既然是公共站点,用户可以访问任何页面而不登录,但是当用户登录页面时,必须根据用户数据进行定制.
编辑
我正在使用模态登录,所以状态在登录后不重新加载,我正在考虑在$rootScope上抛出一个事件,然后在控制器中添加监听器以再次加载它们.但这看起来不太好,所以我正在寻找一个更好的方法
我目前有两个选择:
>重新加载页面 – 会影响用户体验,所以最后一个选项
>为登录模式抛出一个事件,并在其他控制器中捕获它
有什么更好的想法?
解决方法
一旦承诺解决,请尝试使用状态重新加载
$state.reload();