如何让ui路由器转到外部链接,例如google.com?

例如:

 $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()

我建议您使用$window.open('http://www.google.com', '_self')它将在同一页面上打开URL。

您还可以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');

}

});

})

:为了使它能正常工作, 在新窗口中打开Plunkr,因为出于安全原因,

无法在iFrame中打开它。

以上是 如何让ui路由器转到外部链接,例如google.com? 的全部内容, 来源链接: utcz.com/qa/407864.html

回到顶部