当前位置: 首页 > 面试题库 >

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

长孙哲
2023-03-14
问题内容

例如:

 $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');
      }
    });
})

plnkr

注意 :为了使它能正常工作, 在新窗口中打开Plunkr,因为出于安全原因,
Google
无法在iFrame中打开它。



 类似资料:
  • 我有一个使用vue创建的单页应用程序,导航链接都是使用标记完成的。导航中有几个项目我的老板想在导航中使用,但禁用了,这样人们就可以看到一些即将推出的功能。然而,我不知道如何完全禁用路由器链接! 不执行任何操作,不执行任何操作(我尝试将其发送到一个函数,看看这是否会阻止单击,但它只是调用函数并路由,尽管存在阻止),添加一个

  • 我正在使用React和React路由器尝试将我的组件链接到一个项目中。我想从主页(当前组件)链接一张图片到另一个组件。 目前我可以点击图片,它有点像一个链接(有时点击后变成蓝色),尽管它没有链接到其他组件,没有错误显示,网址栏中没有任何变化。什么都没发生。 有什么想法吗?这是我的代码: 代码错误:react dom。发展js:17117上述错误发生在组件中:img(由Home创建)中div(由Ho

  • 问题内容: 我正在生成Javadocs。现在,我想自动将所有库和JDK类链接到该lib或JDK的官方文档。这可能吗,如果可以,我需要哪个命令行参数 问题答案: 解决对标准Java类的引用需要您具有Java Docs的本地副本。 JDK 7 JavaDocs可在此处的其他资源下找到。 然后,运行带有选项的javadoc 。它使用您要参考的文档的URL(例如,https://docs.oracle.c

  • 我正在尝试在我的nginx服务器上设置vue路由器。我遇到的问题是,如果我直接在浏览器中输入url,我的路线就不起作用。 我尝试了vue路由器文档中描述的服务器配置,以及建议的堆栈溢出类似配置。我当前的nginx位置配置如下: 所做的就是将任何路径重定向到我的根组件(path:),而不是。这确实有意义,并且似乎只重定向到索引文件。我如何重定向直接链接的到路由在我的VueJS应用程序? 以下是我的v

  • 我试图在我的reactjs应用程序中使用react路由器。而我遇到了这个问题: 然而: > 当我单击“LinkTest”组件内的链接(前面已经呈现)时,浏览器上的url显示为“http://localhost:3000/home/test”,但没有任何变化。 当我单击“home”组件内的链接时(它与使用相同链接的“linktest”同时呈现),它在浏览器上显示了相同的url:“http://loc