javascript - AngularJS $state 使用 ctrl + 单击在新选项卡中打开链接

标签 javascript angularjs angular-ui-router

我正在尝试在新选项卡中打开一个链接,就像在 ctrl + clicked 时打开一个普通链接一样,除了它附加了 ui-sref 指令,它生成一个 href 属性 /stateName?param1=test¶m2=test,因此使用 URL 打开选项卡:domain.com/stateName?param1=test¶m2=test

现在的问题是我的应用加载在

URL - domain.com/SomePath#/

生成的链接(ui-sref)是

URL - domain.com/StateName?param1=test¶m2=test

ctrl + clicked 时,有什么方法可以为 ui-sref 提供基本 url。我还想在不按下 ctrl 的情况下单击时保持其正常行为?

最佳答案

如果您创建自己的函数来处理此行为,这应该会起作用。这是一个工作 Fiddle in edit mode/Fiddle preview mode .该解决方案确实提供了逻辑。请自行创建您需要的 URL。请注意,fiddle 正在阻止 popups

查看

<a ng-click="specialClick($event, 'stateName', { param: 'value'})">Click me</a>

AngularJS Controller

$scope.specialClick = function (e, state, params) {
   if (e.ctrlKey) {
      window.open($state.href(state, params, '_blank'));
   } else {
      $state.go(state, params, {notify: false});
   }
}

关于javascript - AngularJS $state 使用 ctrl + 单击在新选项卡中打开链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42108908/

相关文章:

javascript - 无法在 Angular 7 中的 SVG 上触发鼠标事件

angularjs - 如何在解析功能中获取当前路线?

javascript - 使用两个数据绑定(bind)访问 Angular Directive(指令)中的范围

javascript - AngularJS 通过 URL ui-router 简单导航到参数化状态

angularjs - 使用 angularjs 在 ionic v1 中查询字符串

javascript - RxJS - 为什么我要使用 throwError 而不是简单地抛出错误?

javascript - Chart.js - 当浏览器语言不是英语时,x 轴和工具提示标签在 Chrome 中显示 "undefined"

javascript - 如果有的话,Javascript 的 "typeof"何时会返回不正确的类型?

javascript - Angular $compile 指令不更新 DOM 对象

javascript - 添加选项来选择会自动选择