加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

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

发布时间:2020-12-17 07:45:40 所属栏目:安全 来源:网络整理
导读:例如: $stateProvider .state('external',{ url: 'http://www.google.com',}) url假定这是一个内部状态.我希望它像href或这样的东西. 我有一个导航结构,将从ui路由构建,我需要一个链接去外部链接.不一定只是google,这只是一个例子. 不是在一个链接或$state.
例如:
$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.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读