角UI路由器,路由决心打破刷新按钮(Angular UI Router, route resolve

2019-10-20 01:03发布

我有角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);
        }
    }

Answer 1:

我遇到了几次。 在我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]


Answer 2:

我不知道我能不能直接回答你的问题,但我也许可以为你指明正确的方向。 你的症状似乎与我相似。

这个答案使我认识到,角UI路由器似乎在默认情况下吞下状态错误。 在添加一个全局监听器$stateChangeError事件,并记录错误,我能看到一些在我的决心函数依赖的(在你的情况, myFactory当我刷新页面)未加载。 这不是通过应用程序的其它部分的正常航行的问题,因为它是一个之中夫妇我控制器,已经正确加载它的共享依赖性。

在我的项目中,我们使用RequireJS与角一起,所以我的解决办法是只添加我依赖的define列表,我的新控制器(似乎不相关的你,所以我就不再赘述了) 。 另外,它的价值,我的项目是采用了棱角分明1.2.13和角度UI路由器0.2.10。

希望这有助于...给予好评我引用的答案 ,如果它呢!



文章来源: Angular UI Router, route resolve breaking refresh button