2014-05-16 25 views
5

Tôi biết cách phát hiện sự kiện được tổ chức trên chỉ thị được nhấp. Tuy nhiên, chỉ thị của tôi cũng cần phải trở nên không được phép hoặc không được chọn khi chuột nằm ngoài phần tử/chỉ thị của tôi. Tôi có thể làm cái này như thế nào?Phát hiện sự kiện tổ chức sự kiện trong Angularjs

Trả lời

9

Tạo hàm liên kết trong chỉ thị liên kết với trình xử lý sự kiện được sắp xếp trên tài liệu. Sau đó, liên kết một sự kiện khác trên chính phần tử chỉ thị. Việc xử lý sau này cũng nên gọi event.stopPropagation() để ngăn chặn sự kiện từ bọt tất cả các con đường lên đến cấp độ tài liệu:

link: function(scope, elem, attrs){ 
    angular.element(document).bind('mousedown', function(){ 
    console.log('clicked on document'); 
    }); 

    elem.bind('mousedown', function(e){ 
    e.stopPropagation(); 
    console.log('clicked on directive'); 
    }); 
} 

Working Plunker

+0

sẽ này sẽ tự động $ apply() là tốt? –

Các vấn đề liên quan