"再"使用angular ui路由器解决资源而无需重新加载

时间:2014-12-17 08:01:55

标签: javascript angularjs angular-ui-router

我在加载主状态时使用以下代码来解析资源。是否可以在不重新加载页面的情况下重新解析资源?我正在避免重新加载,以免影响用户体验。

    $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上抛出一个事件,然后在控制器中添加侦听器以再次加载它们。但这并不好看,所以我正在寻找更好的方法

我目前有两种选择:

  1. 重新加载页面 - 将影响用户体验,因此是最后一个选项
  2. 为登录模式抛出一个事件并将其捕获到其他控制器中
  3. 有更好的想法吗?

1 个答案:

答案 0 :(得分:3)

一旦解决了承诺,请尝试使用状态重新加载

$state.reload();