我遇到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);
}
}
答案 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如果确实如此!