流星:辅助变量不刷新

Meteor: helper variable not refreshing

在 meteor Messenger 应用程序中,我为您与之交谈的每个用户都有页面。但是,当您切换用户时,它并不总是会切换对话。

辅助变量似乎没有刷新。有什么想法吗?

Router.route('/cc/:name',{ 
      template: "cc",
      name: "cc",
      data: function(){
        var x = //...
        chat = Chats.find({users: {$all: [x, Meteor.userId()]}});
      }
    });

帮手

Template.cc.helpers({
    'chat': function(){
        return chat
    }
});

模板

<template name="cc">
 {{#each chat}}
    {{#each message}}
        <span>{{senderName}}</span>
        <b>{{content}}</b>
    {{/each}}
    </div>
 {{/each}}
</template>

它不是反应性的,因为分配不是反应性操作。 Helpers 有 reactive contextChats.find 是一个 reactive data source,但是你必须从 reactive data source 读取 反应上下文使其反应。

解决方案 A:

它看起来像一个 IronRouter,所以直接从 Router 传递数据。阅读更多 here.

方案 B:

chat变成ReactiveVar。阅读更多 here.