如何在flow-router中使用订阅?

时间:2015-07-11 07:49:36

标签: javascript meteor subscription flow-router

// server/publications.js
Meteor.publish('crewMessages', function(crewId) { 
  return CrewMessages.find({crewId: crewId}, {sort: {submitted: -1}, limit: 100});
});

// lib/router.js
FlowRouter.route('/crew/:crewSlug', {
    subscriptions: function(params) {
        console.log("Subscribed to this crew's chat messages:", params.crewSlug);
        this.register('crewMessages', Meteor.subscribe('crewMessages', params.crewSlug));
    },
    action: function(params) {
      FlowLayout.render("layout", { content: 'crew' });
    }
});

在我的crew.html模板中:

<div class="container">
  {{> crewChat}}
</div>

我的crewChat.html/js

Template.crewChat.helpers({
  messages: function() {
    return CrewMessages.find({}, {sort: {submitted: -1}}); 
  }
});

<div class="ui feed">
  {{#each messages}}
    {{> crewChatMessage}}
  {{/each}}
</div>

在我的crewChat.js文件中,如何使用我在Flow-router中设置的订阅?

1 个答案:

答案 0 :(得分:3)

我在MeteorPad上为你创建了一个功能性的例子

http://meteorpad.com/pad/Ba5DTe94NjFi3ZTPA/Playground_Flow-Router_Chat

对您的问题最重要的是,您可以使用Collection.find()模板中的集合,因为您只是通过路由订阅订阅了工作人员消息。

每封邮件都可以作为普通文档see template showChatMessage

访问

希望能让你清楚

干杯 汤姆

PS:您也可以更改meteorpad中的网址以切换到team2和team3的聊天