【问题标题】:ui-sref - new tab without <a> tagui-sref - 没有 <a> 标签的新标签
【发布时间】:2016-11-30 16:45:26
【问题描述】:

我可以在 a 标记中使用 ui-sref 在新选项卡中打开链接:

<a ui-sref="my-state"></a>

现在,我希望能够在 a 标签内的新标签页中打开链接:

<a ui-sref="my-first-state">
    <a ui-sref="my-second-state" ng-click="$event.stopPropagation();"></a>
</a>

问题是我们不能在另一个标签 (Is it ok to have an `<a>` inside another `<a>`?) 中包含 a 标签。

我怎样才能做到这一点(知道使用 a 之外的其他标签无法使用 ui-sref 打开新标签页)?

谢谢

【问题讨论】:

  • 为什么要将链接放在链接中?
  • 每个链接都是一个订单(第一个 a 标签上的基本 ng-repeat),点击一个订单重定向到订单详情。我可以在订单内有一个按钮(第一个 a 标记)重定向到跟踪页面。我希望两者都可以在新标签中打开
  • 就个人而言,这看起来像是糟糕的用户体验。我有一个用户可以点击的特定区域,然后是链接之外的另一个区域,它是指向跟踪页面的链接。
  • 明天给大家分享一张图(我在法国,已经快凌晨1点了),会比较明白的
  • 点击here查看仪表板。您可以点击订单或点击“Suivre le livreur”按钮

标签: javascript html angularjs angular-ui-router


【解决方案1】:

使用buttonngClick指令提供清晰有效的html和js代码

有机会在函数中打开新标签传递事件,然后检查 ctrl 修饰符

  e.preventDefault(); 
  if (e.ctrlKey || e.metaKey){//ctrlKey - Windows, metaKey - OSX
    window.open('http://someurl.com','_blank')
  }

【讨论】:

  • 它将完美运行,但预期的行为是仅当用户在单击期间按下 CMD 或 CTRL(取决于操作系统)按钮时,才会在新选项卡中打开链接
  • 这就是为什么你在函数内部有 if 条件; CMD 检查 -> event.metaKey === true; Ctrl 检查 -> event.ctrlKey === true;
  • 对不起,我还没看到条件,我明天试试。为什么 ng-click on a button 比 ui-sref on a 更好?
  • @Ziad 导致嵌套的a 标签无效,ngClick 你可以调试和自定义
  • 好吧,我不明白你说的是嵌套标签。谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-11-03
  • 2020-08-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多