Nếu tôi lưu trữ xem trong window.myView
biến, làm cho nó, sau đó gọi trong giao diện điều khiển javascript:Tại sao các sự kiện Backbone thay thế html không hoạt động?
$('#container').html('')
và sau đó gọi:
$('#container').html(window.myView.$el)
sự kiện ràng buộc sẽ ngừng làm việc.
Tôi khá chắc chắn rằng được coi là như vậy, nhưng:
- tại sao chính xác nó hoạt động theo cách này?
- làm cách nào để kết xuất lại phần phụ của chế độ xem bằng cách mất kết buộc sự kiện?
- lý do tại sao gọi
myView.render()
sẽ không mất các ràng buộc sự kiện?
Cập nhật:
Tìm thấy this bài viết. Đó có phải là lý do?
Hãy chắc chắn rằng jQuery không dỡ các sự kiện của bạn khi bạn không muốn nó
Nếu bạn đang xây dựng một ứng dụng mà bạn tạo ra quan điểm một cách nhanh chóng và đính kèm/loại bỏ chúng vào dom, bạn có thể có một vấn đề. Mỗi khi bạn loại bỏ một cái nhìn từ dom, jQuery dỡ tất cả các sự kiện. Vì vậy, bạn không thể có tham chiếu đến chế độ xem và xóa chế độ xem khỏi vị trí và sau đó đính kèm lại sau. Tất cả các sự kiện của bạn sẽ bị xóa. Nếu bạn muốn giữ các khung nhìn xung quanh, một ý tưởng tốt hơn là ẩn chúng bằng cách sử dụng display: none. Tuy nhiên, bạn không nên lạm dụng điều này và tái chế các khung nhìn mà bạn sẽ không sử dụng trong một thời gian (và ngăn chặn rò rỉ bộ nhớ).
Cảm ơn câu hỏi này. Tôi đã có một vấn đề tương tự với cột sống và không thể tìm ra những gì đang xảy ra ở tất cả. –