2016-07-15 124 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如果你不介意我問 –

相關問題