Meteor inşa edilmiştir
t.js
Coll = new Meteor.Collection("coll");
if (Meteor.isClient) {
Template.tpl.rendered = function(){
console.log(Coll.find().fetch()); // <-- This line prints empty array
};
}
if (Meteor.isServer) {
Meteor.startup(function() {
if (Coll.find().count() === 0) {
var f = ["foo","bar"];
for (var i = 0; i < f.length; i++)
Coll.insert({f: f[i]});
}
});
}
Ve t.html
dosyasıdır bir veri-on-tel tipi structu kapalı yeniden. Bu, uygulamanın başlangıçta HTML & JS'yi yüklediğinde önce ve daha sonra verileri gönderdiği anlamına gelir. bir koleksiyona abonelik (autopublish paketini çıkarmadan gerektirir olan) tamamlandığında
Veri değişiklikleri kontrol veya kontrol etmek reaktiviteyi kullanmak zorunda. veri döndürüldüğünde abonelik geri arama anlatır
:
Meteor.subscribe("coll", function() {
//Data subscription complete. All data is downloaded
});
bir şablon da reaktif hale getirilebilir (: (http://docs.meteor.com/#publishandsubscribe Sen docs manuel bir aboneliğe uygulamayı taşımak nasıl kontrol edebilirsiniz) yol gibi yapıyorsun) fakat Meteor öncelikle onun hTML değiştirmek ve oluşturulan geri arama arayacak farklı olması halinde bir şablonun html & değişti olmadığını denetler çünkü .rendered
isnt çağrıldığını. siz) bir seçenek burada 1'e olduğu gibi olduğundan bunun yerine Deps.autorun kullanmak ne
veya
2) Eğer render geri aramasında bu kullandığınız neden emin değilim ama gerekirse orada koymak şablonun HTML'sinin değiştiğinden emin olmanız gerekir. Böylece, koleksiyonunuzdaki html'ye yeni veriler eklendiğinde bunu değiştirecek bir şey eklenir.
Çünkü koleksiyonunuz henüz yüklenmemiş. "Template.rendered", kovuldu, koleksiyonunuzun yüklü olduğu anlamına gelmez. [bu] 'yu kontrol edin (http://stackoverflow.com/questions/15129827/). –