2013-08-06 4 views
1

AngularJS: How to listen to DOM Events?이 답변은 ng-click 지시어를 사용하고 있습니다. 필자의 시나리오는이 접근법을 피하고자한다.angularjs DOM 이벤트 듣기

이것은 내 샘플 코드입니다.

여기 내 시도입니다.

JS Fiddle

$('#test').on({ 
      click: function (e) { 
       console.log("test..."); 
      } 
     }); 
$('#login').on({ 
      click: function (e) { 
       console.log("test..."); 
      } 
     }); 

이 난 주어진 DOM 요소의 클릭을들을 것이다 구현 될 수있는 수신기가 필요합니다. 이것에 대한 도움이 인정됩니다. 당신이 정말로 사용하지 않으려는 경우

+1

'지시어'에 AngularJS 문서를 읽는 것이 좋습니다. 정말로 당신은 컨트롤러에서 DOM 처리를 피해야합니다. 한 가지 제안은 이벤트 위임을 사용하여 위임 할 수있는 부모 요소 (즉, 본문)에 대한 '클릭'이벤트에 단순히 응답하는 간단한 지시문을 만드는 것입니다. – SonOfNun

+10

죄송합니다. 하지만, 왜 '클릭 (ng-click)'이 적합하지 않은가? http://jsfiddle.net/2nHxs/. –

답변

4

당신이 요소

확인이 바이올린 DOM에 당신이 지시어를 사용하여 간단한 속성을 추가 할 수 있습니다, NG를 클릭 : 나는 단순히 지침을 만들어 http://jsfiddle.net/DotDotDot/ZYdEf/5/

을하는

directive('clickable', function(){ 
    return function(scope, elt, attr){ 
     elt.bind('click', function(e){ 
      console.log('hello from',elt) 
     }) 
}) 

그런 다음, HTML에 정말 쉽습니다 :

<a href="#" id="test" clickable>Click</a> 
<a href="#" id="login" clickable>Log</a> 
요소에 클릭 이벤트를 바인딩 한 후 클릭을 기록

재밌게 보내십시오.