我在Angular中遇到了一種情況,我感覺我做錯了什麼,但是我找不到解決它的Angular方法。如何編寫指向鉤入ng-click處理程序的指令
我正在開發一個移動應用程序。我想創建一個指令,我們將其稱爲cc-tap-highlight
,它將與ng-click一起使用。這意味着我可以用這樣的:
<a ng-click="doSomething()" cc-tap-highlight>Click me</a>
這是什麼會做的是一類添加到點擊的元素,並在幾秒鐘後刪除它。
現在可以說,讓我們手動綁定到指令中的元素click
事件。這將適用於桌面應用程序。然而,在移動設備上Angular
做了很多神奇的,我們有快速的點擊/點擊:
https://github.com/angular/angular.js/blob/master/src/ngMobile/directive/ngClick.js
可以肯定,我不想重新實現這一切的魔力!
因此,目前的而不是我的cc-tap-highlight
指導我用這個相當hackish的方法:
在視圖
<a ng-click="doSomething($event)" cc-tap-highlight>Click me</a>
在控制器:
$scope.doSomething = function($event){
//do your things with $event.currentTarget
}
主要有兩種這種方法的問題:
控制器將不操作DOM
我們需要通過我們的整個代碼庫一遍又一遍地重複拍打違反幹
但是,我不能爲我的生活,弄清楚如何編寫一個指向掛鉤到ng-click
處理程序的指令並做它的事情。
,將工作,但它也是一個格雷亞因爲它意味着在任何需要的地方用'my-click'取代'ng-click'。我認爲真正的修復需要在Angular框架內部進行。他們應該直接在元素上觸發一個事件,以便在編寫指令時綁定該事件。我創建了一個問題和一個PR,但它需要更多的工作。 https://github.com/angular/angular.js/issues/3218 – Christoph