如何在流量路由器中使用订阅?
How do I use a subscription in 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 中设置的订阅?
我在 MeteorPad 为您创建了一个功能示例
http://meteorpad.com/pad/Ba5DTe94NjFi3ZTPA/Playground_Flow-Router_Chat
对于您的问题最重要的是,您可以通过 Collection.find()
使用模板中的集合,因为您仅通过路线订阅订阅了工作人员消息。
每条消息都可以作为普通文档访问see template showChatMessage
希望这能让你明白
干杯
汤姆
PS: 你也可以把meteorpad里面的url也改成team2和team3的聊天
// 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 中设置的订阅?
我在 MeteorPad 为您创建了一个功能示例
http://meteorpad.com/pad/Ba5DTe94NjFi3ZTPA/Playground_Flow-Router_Chat
对于您的问题最重要的是,您可以通过 Collection.find()
使用模板中的集合,因为您仅通过路线订阅订阅了工作人员消息。
每条消息都可以作为普通文档访问see template showChatMessage
希望这能让你明白
干杯 汤姆
PS: 你也可以把meteorpad里面的url也改成team2和team3的聊天