2012-05-07 22 views
5

Điều này đã boggled tôi một thời gian, nhưng tôi quản lý để tiếp tục đẩy nó về phía trước. Thật không may, thời gian đã đến tôi thực sự cần điều này.EmberJS có một sự kiện được gọi sau khi chế độ xem Handlebars đã được cập nhật không?

Câu hỏi của tôi là: EmberJS/Handlebars có cung cấp sự kiện được gọi khi lượt xem được cập nhật và hiển thị trong DOM không?

Tôi cần sử dụng sự kiện này để chạy một số nội dung jQuery như addClass, sắp xếp, v.v. Tôi đã thử sử dụng plugin Live jQuery nhưng nó không hoạt động với Handlebars. Trên hết, tôi cho rằng sự kiện đã diễn ra ở một nơi nào đó, tôi dường như không thể tìm thấy nó.

Trả lời

7

Bạn đã xem các phương thức willInsertElement, didInsertElementwillRerender trong Ember.View? Ngoài ra, có rất nhiều bài đăng ở đây trên S.O. thỏa thuận với việc tích hợp các plugin và khung công tác jQuery với Ember.

https://github.com/emberjs/ember.js/blob/master/packages/ember-views/lib/views/view.js#L1250-1267

chỉnh sửa/cập nhật

Sau một chút trở lại và thứ tư trong các ý kiến, giải pháp cuối cùng là sử dụng Ember.run.next. Xem: http://jsfiddle.net/ud3323/SsRuX/

+0

Tôi thấy, vấn đề với các sự kiện này là 'willInsertElement' và' didInsertElement' chỉ được gọi một lần khi khung nhìn được thêm vào DOM bằng 'appendTo', không phải khi nó cập nhật. 'willRerender' không thực sự kích hoạt, nhưng trước khi bất cứ thứ gì được thêm vào DOM, việc gọi các cuộc gọi jQuery không làm gì cả. –

+0

Bạn có thể có liên kết đến các bài đăng đã nói trên StackOverflow không? –

+0

Còn về 'afterRender' thì sao? Chế độ xem đang cập nhật như thế nào? Có thay đổi về tài sản không? Nếu vậy bạn chỉ cần quan sát tài sản đó. Có một số sự kiện, như một sự kiện chuột không? Bạn có bất kỳ mã nào bạn có thể chia sẻ không? Nó sẽ thực sự giúp bạn hướng đúng hướng ... –

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