Tôi đang cố gắng tạo trang bằng tab (sử dụng AngularJS). Có một bản đồ (API Google Maps v3) ở một trong các tab đó. Khi bản đồ nằm trong tab ở phía trước, mọi thứ có vẻ ổn. Nhưng khi bản đồ được tải trong tab nền và chỉ hiển thị sau khi tab được nhấp vào bản đồ bị thất lạc/cắt bỏ và khi bạn cố gắng thao tác với nó, chức năng của nó dường như bị hỏng.AngularJS: ánh xạ qua API Google Maps v3 trong tab
Tôi đã tìm kiếm các giải pháp và tôi thấy những thủ đoạn với
google.maps.event.trigger(map, 'resize');
map.setCenter(center);
nhưng nó không làm việc. Bạn có thể xem http://jsfiddle.net/n4q7Y/5/ và cho tôi biết những gì tôi đã bỏ lỡ không?
Cảm ơn bạn.
Nice, cảm ơn bạn :-) fiddle này được cập nhật với ý tưởng của bạn cũng nạp điểm đánh dấu: http://jsfiddle.net/honzzz/n4q7Y/22/ – honzzz
Tiến sĩ .Molle, bất kỳ ý tưởng tại sao điều này là cần thiết? Có vẻ như một hack chỉ để bỏ qua một lỗ hổng với các mô-đun Maps mà kết quả trong hai '$ phạm vi. $ Apply's xảy ra cùng một lúc ... Mà nên do đó được cố định trong mô-đun hơn là với một thời gian chờ .. –
I đoán vấn đề là một thực tế rằng những thay đổi trên tài sản được lựa chọn được quan sát bởi 2 bên (1. buộc bởi '$ phạm vi. $ watch' và 2. bởi' ng-show'), nhưng không có cách nào để kiểm soát thứ tự của cuộc gọi của người nghe, bởi vì họ được gọi là không đồng bộ. Một giải pháp tốt hơn có thể là đặt thuộc tính khác cho biết rằng bản đồ sẽ được hiển thị và xem thuộc tính này để kích hoạt sự kiện thay đổi kích thước cho bản đồ: http://jsfiddle.net/doktormolle/6WxtE/ –