Tweets = new Meteor.Collection('tweets');
if (Meteor.isClient) {
Meteor.subscribe('tweets');
Template.Panel.helpers({
items: function() {
var days_tweets = Tweets.find();
console.log(days_tweets.count());
return days_tweets;
});
}
if (Meteor.isServer) {
Meteor.publish('tweets', function() {
return Tweets.find({}, {limit: 1000});
});
şablonu:Meteor yardımcı değişken tek şablon tarafından birden çok kez denilen
<body>
<h1>This is a list of tweets</h1>
{{> Panel}}
</body>
<template name="Panel">
<h2>A list of tweets sorted by size</h2>
{{#each items}}
<p>item</p>
{{/each}}
</template>
Ve sayfa yüklendiğinde konsol çıkışı:
Tweet count: 0
Tweet count: 129
Tweet count: 272
Tweet count: 366
Tweet count: 457
Tweet count: 547
Tweet count: 672
Tweet count: 814
Tweet count: 941
Tweet count: 1000
Yani yardımcı işlevi sayfasında 10 kez ateşler yük (kat sayısı değişir). Burada neler olduğunu açıklayan var mı? Buna herhangi bir referans bulamıyorum, yardımcının şablonda birden çok {{}} yerden çağrıldığı durumlarda kabul et. Ayrıca bunu durdurmak için herhangi bir yolu? Sonunda tweet'leri işlenmeden önce bir seferde işlemek zorundayım.
Tamam teşekkürler. Bunun gibi bir şey üstlendim. Bunu durdurmak için herhangi bir yolu var mı? (sunucudaki koleksiyonun değişmediğini varsayarsak, buradaki durumdur). Sabit sunucu ve istemci koleksiyonu arasında eşzamansız bir şekilde çalışan bir senkronizasyon olması garip görünüyor. – kendlete
@kendlete, meteor'ın abone sistemi ile çalışmanın nasıl yapılacağına dair bir örnekle güncellediler –
'Meteor.subscribe()' ayrıca, abonelikler açılana kadar daha fazla kodun eklenmesini geciktirmek için kullanılabilecek bir dokümana da sahip olabilir. hazır. Abonelik hazır olduğunda bir boolean döndüren .ready() farklıdır. Muhtemelen Marco'nun yaklaşımından biraz daha hantal. – Paul