は私の指示角度で要素クリックを効率的に検出する方法は?私たちが見ることができるようにここで
function linkFunc(scope, element, attr){
// Detect Element Click Logic
scope.myCtrl.clickedElsewhere = {value: true};
$document.on('click', function(){
scope.myCtrl.clickedElsewhere.value = true;
scope.$apply();
});
element.on('click', function(){
event.stopPropagation();
scope.myCtrl.clickedElsewhere.value = false;
scope.$apply();
});
// End Detect Element Click Logic
}
のための私のリンク機能で、私たちは、これは、すべてのドキュメント内の任意の場所をクリックするために、我々はダイジェスト・サイクルをトリガすることを意味し、$document.on()
とscope.apply
を使用しました。 $watch
トリガーが多い場合は、Webページが遅くなる可能性があります。この実装はすべて効率的ではありませんが、エレメントのクリックとオフの要素をクリックして検出する他の方法を考えて、エレメントの拡張と縮小を考えることはできません。
誰かが洞察力を与えてくれますか?
おかげ
あなたは 'ng-click'を使います。 – Casey
@Casey Hmm、しかし、私はどのように収縮の要素のクリックを検出するでしょうか?私はクリックしたときにリストを拡張する必要がありますが、ユーザーが他の要素をクリックしたときにはリストを縮小します。 ng-clickは要素のクリックでのみ検出されるようです。 – testing
なぜドキュメントごとに '$ scope.apply()'を実行する必要がありますか? – charlietfl