Meteorで構築したいニュースフィードのアイデアがありますが、ニュースフィード自体を一定にする方法を見つけるのに少し苦労しています。これは反応的ではありませんが、サブアイテムを更新します(コメント、いいねなど)更新されるとすぐに。
すべてを1つのコレクションに保存しているので、可能であればそのままにしておきたいと思います。したがって、コレクションは次のように設定されます。
[
{
title: 'A random title',
date_created: '01/01/2001',
comments:
[
{'message': 'Lorem ipsum', date_created: '01/01/2001'},
[...]
]
},
[...]
]
したがって、私がやりたいのは、ニュースフィードを非反応性にして、新しいニュースアイテムが挿入または更新されたときに、ニュースのリストを保持しているテンプレートが再レンダリングされないようにすることです。ただし、コメントが追加、削除された場合、または誰かがニュースフィードを気に入った場合は、テンプレートですぐに更新されるようにしたいと思います。
私は使い方を理解しようとしてきました{{#isolate}}
が{{#constant}}
、勝つことはできませんでした。
これが私のクライアントサイドJSです:
Template.group_feed.feed_data = function() {
var feed = Newsfeed.find({}, {
sort: {updated_time: -1},
limit: 10,
reactive: false
}).fetch();
return feed;
};
テンプレートが更新されないように設定reactive: false
しましたが、コメントやいいねが更新されても静的になります。したがって、コレクション全体を非反応性にするよりも、これを行うためのより良い方法があると思います。
これが私のテンプレートコードです:
<template name="group_feed">
<div id="feed-wrapper">
<ul>
{{#each feed_data}}
{{> group_feed_item}}
{{/each}}
</ul>
</div>
</template>
<template name="group_feed_item">
<li>
<h1>{{title}}</h1>
<div class="comments">
{{#each comments}}
<p>{{message}}</p>
{{/each}}
</div>
</li>
</template>
誰かがこれを達成するための良い方法を手に入れましたか?