angularjs – 我将如何将ui路由器转到外部链接,如google.com?

前端之家收集整理的这篇文章主要介绍了angularjs – 我将如何将ui路由器转到外部链接,如google.com?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
例如:
$stateProvider
            .state('external',{
                url: 'http://www.google.com',})

url假定这是一个内部状态.我希望它像href或这样的东西.

我有一个导航结构,将从ui路由构建,我需要一个链接去外部链接.不一定只是google,这只是一个例子.

不是在一个链接或$state.href(‘http://www.google.com‘)中寻找它.需要它在路由配置中声明性地.

Angular-ui-router不支持外部URL,您需要使用$location.url()或$window.open()重定向用户,

我建议您使用$window.open(‘http://www.google.com’,’_self’),这将打开同一页面上的URL.

更新

您还可以通过添加外部参数来定制ui-router,它可以是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');
      }
    });
})

Sample Plunkr

Note: Open Plunkr in a new window in order to make it working,because 07001 doesn’t get open in iFrame due to some security reason.

猜你在找的Angularjs相关文章