例如:
$stateProvider .state('external', { url: 'http://www.google.com', })
url假定这是一个内部状态。我希望它像href或类似的东西。
我有一个将从ui路线构建的导航结构,并且需要一个链接以转到外部链接。不一定只是谷歌,那只是一个例子。
不在链接或$ state.href(’ http://www.google.com ‘)中查找。在路由配置中声明性地需要它。
Angular-ui-router不支持外部URL,您需要使用$location.url()或重定向用户$window.open()
$location.url()
$window.open()
我建议您使用$window.open('http://www.google.com', '_self')它将在同一页面上打开URL。
$window.open('http://www.google.com', '_self')
更新资料
您还可以ui-router通过添加参数来自定义external,它可以是true/ false。
ui-router
external
true
false
$stateProvider .state('external', { url: 'http://www.google.com', external: true })
然后$stateChangeStart在您的状态中配置并在那里处理重定向部分。
$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'); } }); })
plnkr
注意 :为了使它能正常工作, 请 在新窗口中打开Plunkr,因为出于安全原因, Google 无法在iFrame中打开它。