当加载主状态时,我正在使用以下代码来解析资源.是否可以重新解析资源而不重新加载页面?我避免重新加载,以便用户体验不受影响.
$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();