Angular-ui-router 不支持外部 URL,您需要使用以下任一方法重定向用户$location.url()
or $window.open()
我建议你使用$window.open('http://www.google.com', '_self')
这将在同一页面上打开 URL。
Update
您还可以定制ui-router
通过添加参数external
, 有可能true
/false
.
$stateProvider
.state('external', {
url: 'http://www.google.com',
external: true
})
然后配置$stateChangeStart
在您所在的州并在那里处理重定向部分。
运行块
myapp.run(function($rootScope, $window) {
$rootScope.$on('$stateChangeStart',
function(event, toState, toParams, fromState, fromParams) {
if (toState.external) {
event.preventDefault();
$window.open(toState.url, '_self');
}
});
})
样本笨蛋 http://plnkr.co/edit/b2f5gc?p=preview
Note:在新窗口中打开 Plunkr 才能使其正常工作,因为google http://google.com由于某些安全原因,无法在 iFrame 中打开。