Tôi đã sử dụng một chỉ thị tùy chỉnh để phát hiện nhấp chuột bên ngoài một phần tử trong góc 2 nhưng điều này cũng không thể thực hiện trong góc 4.phát hiện Nhấn vào yếu tố bên ngoài trong góc 4 sử dụng chỉ thị
[plunkr]
https://plnkr.co/edit/aKcZVQ?p=info
Khi tôi cố gắng sử dụng cùng một mã trong angular-4 Tôi nhận được các lỗi sau:
Đối số của loại '{template: string; chỉ thị: typeof ClickOutside []; } 'không thể gán cho tham số kiểu' Thành phần '. ==>
@Component ({ templateUrl: "", directives: [ClickOutside] })
Loại 'Đặt' là không thể chuyển nhượng để gõ 'Quan sát'. trong chỉ thị bên ngOnInit() và ngOnDestroy()
ngOnInit() { this.globalClick = Quan sát .fromEvent (tài liệu, nghe tiếng 'click') .delay (1) .do (() => { this.listening = true; }) đăng ký ((sự kiện: MouseEvent) => { this.onGlobalClick (sự kiện); }); }
ngOnDestroy() { this.globalClick.unsubscribe(); }
Nếu có bất kỳ sự thay đổi trong việc kê khai chỉ thị ở góc 4 xin vui lòng cho tôi biết, các tài liệu chính thức là không có sự giúp đỡ trong vấn đề này.
Rất tiếc, trang này: https://stackoverflow.com/a/45997092/5468463 – Vega
@Vega Tôi đang theo cùng phương pháp nhưng vấn đề duy nhất là ứng dụng ication mất thời gian của '2000ms để xử lý mỗi nhấp chuột, đó là một bummer vì điều này bóp méo các UX – Ronit