5

ドキュメントが変更されると、Meteor はビューを再レンダリングします。

Template.story.data = function() {
  var storyID = Session.get('storyID');
  var story = Stories.findOne({
    _id: storyID
  })

  if (!story)
    return;

  return story;
};

これはストーリー テンプレートのテンプレート ヘルパーで、ストーリー ドキュメントからストーリーを取得します。

フィールドがstory.title変更されたとき、テンプレートを再レンダリングしたい。しかし、story.viewingusers変更のようなフィールドでは、テンプレートを再レンダリングしたくありません。とにかくそれを実現するには?

質問を引き起こした特定の問題は、これらのフィールドを公開しないように公開機能を設定することで解決されました。ただし、そのソリューションはすべてのユースケースで機能するわけではなく、一般的なソリューションが必要です。

4

1 に答える 1

3

探しているのは#constantテンプレート ヘルパーです。

あなたの場合、ポップオーバーマークアップを定数ブロックにラップし、そのブロックのコンテンツをstory.rendered関数で手動で更新します。

だから、このようなもの:

ストーリー.html:

<template name="story">
    ...
    {{#constant}}
        <!-- Popover markup here -->
    {{/constant}}
    ...
</template>

client.js:

Template.story.rendered = function(){
    //Update logic here
}
于 2012-11-19T00:50:52.997 に答える