2015-04-27 13 views
5

Gần đây, tất cả tài liệu về các trạng thái sao băng là onRendered là một cách mới để nhận lại cuộc gọi khi mẫu đã hoàn thành hiển thị. và rendered chỉ dành cho khả năng tương thích ngược.Meteor.js onRendered & rendered

Tuy nhiên, điều đó dường như không có tác dụng đối với tôi. onRendered không bao giờ được thực thi, trong khi rendered thực hiện. Tôi có phiên bản mới nhất của thiên thạch 1.1.0.2

//only this is executed 
Template.hello.rendered = function(){ 
    console.log('rendered'); 
} 

//and this is not 
Template.hello.onRendered = function(){ 
    console.log('onRendered'); 
} 
//even if I comment first one out 

và cả hai chức năng trong hành động mà bạn có thể thấy trong github này repo. Tôi có làm gì sai không, hoặc đây là lỗi trong onRendered?

và câu hỏi thứ hai - lý do tại sao tôi bắt đầu tìm hiểu điều này - làm cách nào tôi có thể thực thi mã mỗi lần thêm phần tử dom vào mẫu của tôi? rendered dường như không được gọi khi điều đó xảy ra. Còn cách nào khác không?

Trả lời

11

onRendered có chức năng như đối số . Hãy thử điều này thay vì:

Template.hello.onRendered(function() { 
    console.log('onRendered'); 
}); 

Với sự thay đổi đó, bạn nên tìm cả renderedonRendered sẽ được gọi. Cũng lưu ý rằng bây giờ bạn có thể thêm nhiều cuộc gọi lại onRendered cho một mẫu nhất định.

+0

sẽ thử trong giây lát. Và câu hỏi thứ hai? –

+1

@MartinsUntals, bạn có thể sử dụng mẫu lồng nhau có chứa phần tử được xóa và thêm bằng một cuộc gọi lại được đặt lại trên đó. Hoặc bạn có thể sử dụng các móc ui nếu bạn đang cố gắng để có được một hình ảnh động đi (demo: https://github.com/RainHaven/meteor-ui-hooks-demo/blob/master/simple-todos.js#L45- L62) – Akshat

+0

mẫu lồng nhau hoạt động! –

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