Angular UI Router,路由解析破解刷新按钮

时间:2014-04-30 23:56:15

标签: javascript angularjs angular-ui

我遇到Angular UI路由器的问题。当我路由下面的状态时,它完全正常。但是,当我刷新页面时,解析获取数据,它被注入控制器,但视图不加载。简而言之,当状态通过ui-sref链接或$ state.go路由到时,状态正常,但在刷新页面时则不行。有没有人遇到过这个问题?

  $stateProvider.state('information', {
        templateUrl: 'information.html',  
        resolve:{
             'infoData': function($q, myFactory) {
                 var data = {};
                 data.first = myFactory.get(1);
                 return $q.all({first: data.first.$promise});  
              }
        },
        controller: function($scope, infoData){
          console.log(infoData);
        }
    }

2 个答案:

答案 0 :(得分:0)

我已经遇到过这几次了。在我的routes.js文件中,我总是使用html5模式,摆脱了角度默认的哈希爆炸。

// Set HTML5 mode to true
$locationProvider.html5Mode(true).hashPrefix('!');

我的.htaccess

也有这个
RewriteEngine on
#let angular do its thing
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*) index.html [NC,L]

答案 1 :(得分:0)

我不知道我是否可以直接回答你的问题,但我可以指出你正确的方向。你的症状与我的相似。

This answer让我意识到Angular UI Router似乎默认吞下状态错误。在向$stateChangeError事件添加全局侦听器并记录错误后,我能够看到我的解析函数中的某些依赖项(在您的情况下,myFactory)没有加载刷新页面。这不是通过应用程序其余部分的正常导航的问题,因为它是我的几个已正确加载它的控制器之间的共享依赖。

在我的项目中,我们使用RequireJS和Angular,所以我的解决方案就是将我的依赖项添加到我的新控制器的define列表中(对你来说似乎不相关,所以我不会详述)。另外,对于它的价值,我的项目使用的是Angular 1.2.13和Angular UI Router 0.2.10。

希望这有助于... upvote the answer I referenced如果确实如此!