【问题标题】:ng-click doesn't work when open link in new tab is clicked单击新选项卡中的打开链接时,ng-click 不起作用
【发布时间】:2016-07-15 13:31:53
【问题描述】:

ng-clickng-href 指令一起使用时将首先执行点击功能。在以下示例中,将阻止导航到 Google,并显示警报。

<a ng-href='http://google.com' ng-click="click($event)">Link</a>

$scope.click = function (event) {
    event.preventDefault();
    alert('click has been trigerred');
}

这只有在用户使用鼠标左键单击链接时才有效。如果用户尝试在新选项卡中打开链接,则不会触发点击事件。在某种程度上它似乎是正确的,因为它不是严格意义上的“点击”,但是是否有任何 Angular 指令用于处理新标签中的打开链接?

更新:

我不想以编程方式打开新标签,而是处理用户打开新标签的事件。

【问题讨论】:

  • 如果你想阻止右键单击,你需要覆盖默认的上下文菜单行为。也许这可以帮助stackoverflow.com/questions/15731634/…
  • @Stuff_H4pp3nz 很抱歉我的问题含糊不清。我想处理用户打开新标签的事件,而不是阻止它。
  • 嗨@Landeeyo,你最后能解决这个问题吗?我面临着同样的困境。我希望用户能够决定是否要单击或 rmc 并打开新标签。
  • 嗨@Starceaker。很抱歉,但据我记得我没有解决它。

标签: javascript angularjs


【解决方案1】:

除了使用 ng-href,您还可以在点击时使用另外一项功能,该功能将为您打开新标签。

<a  ng-click="openTab(); click($event)">Link</a>

$scope.click = function (event) {
    event.preventDefault();
    alert('click has been trigerred');
}
$scope.openTab() {
    $window.open('https://www.google.com', '_blank');
}

【讨论】:

  • @Stuff_H4pp3nz 很抱歉我的问题含糊不清。我想处理用户打开新标签的事件,而不是以编程方式进行。
  • 那么您可能会使用目标属性。如果你不介意我问,为什么要使用 ng-click
猜你喜欢
  • 1970-01-01
  • 2013-02-20
  • 2022-07-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-06-29
  • 1970-01-01
相关资源
最近更新 更多