AngularJS ng-clickディレクティブを変更して、いくつかの追加機能を追加しました。何を使用するかについてはいくつかのアイデアがありますが、単純なものはすべてのクリックにGoogleアナリティクストラッキングを追加する方法と、ダブルクリックを防ぐ方法です。AngularJsでng-clickディレクティブをデコレートする
私の最初の考えは、デコレータを使用することでした。
app.config(['$provide', function($provide) {
$provide.decorator('ngClickDirective', ['$delegate', function($delegate) {
// Trigger Google Analytics tracking here
return $delegate;
}]);
}]);
しかし、デコレータがインスタンシエーション時に起動されるため、デコレータの式が満たされていないため、これは機能しません。したがって、この場合、ディレクティブを持つ要素がクリックされたときではなく、その要素が読み込まれたときに解析を行います。
実際の質問にはそうです。デコレータがそのディレクティブがインスタンス化される要素を取得する方法はありますか?私がデリゲートから要素に到達できれば、ng-clickに加えて自分のクリックイベントをバインドしてトリガーすることができます。
そうでない場合は、すべてのクリックで何かを追加するにはどうしますか?
ああ、。私はあまりにも新しい機能を作るのではなく、その要素を見つけることに集中していました:Pありがとう! –
@ErikHonn問題ありません。私はデコレータを使う必要がなかったし、これは確かに私にとっては楽しい運動だった。 :) –
私はコードで新しいスコープのプロパティにアクセスしようとすると、availbleではないので、これはもう動作しないと思います。ここでフィドルですhttp://jsfiddle.net/377vhfm4/3/ –