2016-08-03 2 views
1

私のページ上のすべてのアンカーを見る必要があります。顧客がリンクをクリックしてこのリンクを特定する必要がある場合は、新しいタブ(target="_blank")を開くかどうかを確認するか、別の操作を行います。角度を使ってページ上のすべてのアンカーを見る

これを角度で処理する最適な解決策は何ですか? jQueryではこれはかなり簡単ですが、Angularjsでどのように扱うかについてはわかりません。異なるレベルでscope.$on('$locationChangeStart', ...)を使用しようとしましたが、決してトリガーされません。私は現在、それを動作させるようにしようとしています。

scope.$watch(function() { 
    return angular.element('a'); 
}, function (value) {}); 

しかし、それも動作しません。

$('a').live('click', ...)でjqueryと同じ動作をする方法はありますか?

ジェネリックである必要がありますので、すべての要素を監視するのに十分高いレベルで1度追加されたディレクティブに置くようにしてください(jQueryと同じように)。はい、難しい要求です。議論はできません。

答えて

2

aという名前の新しいディレクティブを作成する必要があります。角度はすべてアンカー

angular.module('link', []) 
 
    .directive('a', function() { 
 
     return { 
 
     restrict: 'E' 
 
     link: function(scope, element, attrs) { 
 
      element.on('click', function() { 
 
      if (attrs.target) 
 
      //your logic 
 
      }) 
 
     } 
 
     } 
 
    }

+0

角度のためにそれを実行します。この方法は、すでにhtmlAnchorDirectiveで、それが衝突しないことですか? – Luca

+0

ああもちろんeMそうです。私はすでに入力しています。私の側で失敗する。プロジェクトに必要なファイルが追加されるように、ディレクティブを追加します。私は今それを試してみるつもりです。 –

+1

@Lucaそれは衝突しません....同じ名前のディレクティブが複数ある場合、angleはそれらをすべて実行します。 thatsは基本的なhtml input要素を改善しました – harishr

関連する問題