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

前端之家收集整理的这篇文章主要介绍了angularjs – 我将如何将ui路由器转到外部链接,如google.com?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
例如:
  1. $stateProvider
  2. .state('external',{
  3. 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.

  1. $stateProvider
  2. .state('external',{
  3. url: 'http://www.google.com',external: true
  4. })

然后配置$stateChangeStart在你的状态&处理重定向部分.

运行块

  1. myapp.run(function($rootScope,$window) {
  2. $rootScope.$on('$stateChangeStart',function(event,toState,toParams,fromState,fromParams) {
  3. if (toState.external) {
  4. event.preventDefault();
  5. $window.open(toState.url,'_self');
  6. }
  7. });
  8. })

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相关文章