2016-07-15 79 views
1

ng-clickng-href指令一起使用时将首先执行点击功能。在以下示例中,将阻止导航到Google,并显示警报。当点击新标签中的打开链接时,ng-click不起作用

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

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

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

UPDATE:

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

+0

如果要防止右键单击,则需要覆盖默认的上下文菜单行为。也许这可以帮助http://stackoverflow.com/questions/15731634/how-do-i-handle-right-click-events-in-angular-js –

+0

@ Stuff_H4pp3nz我很抱歉模糊我的问题。我想处理用户打开新选项卡的事件,而不是阻止它。 – Landeeyo

+0

Hi @Landeeyo,你最终能够解决这个问题吗?我面临同样的困境。我希望用户能够决定是否要单击或rmc并打开新选项卡。 – Starceaker

回答

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

@ Stuff_H4pp3nz我很抱歉我的问题含糊不清。我想要处理用户打开新选项卡的事件,而不是以编程方式进行。 – Landeeyo

+0

那么你可能会使用目标属性。为什么用ng-click如果你不介意我问 –

相关问题