当某些领域发生变化时,流星不会重新渲染

时间:2012-11-14 00:40:45

标签: javascript meteor

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这样的字段发生变化时,我不想重新渲染模板。无论如何要做到这一点?

通过将发布功能设置为不发布这些字段,解决了触发问题的具体问题。但是,该解决方案并不适用于所有用例,因此需要一般解决方案。

1 个答案:

答案 0 :(得分:3)

您正在寻找的是#constant模板助手。

我在你的情况下做的是将popover标记包装在一个常量块中,然后在story.rendered函数中手动更新该块中的内容。

这样的事情:

story.html:

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

client.js:

Template.story.rendered = function(){
    //Update logic here
}