Javascript 流星内容不显示
我对Flow Router或我的模板级订阅有问题,但数据未在页面上呈现 为了以防万一,我在这里粘贴了一个指向整个github repo的链接: lib/routes.jsJavascript 流星内容不显示,javascript,meteor,meteor-blaze,Javascript,Meteor,Meteor Blaze,我对Flow Router或我的模板级订阅有问题,但数据未在页面上呈现 为了以防万一,我在这里粘贴了一个指向整个github repo的链接: lib/routes.js listRoutes.route('/:slug', { name: 'list', subscriptions: function (params) { this.register('singleList', Meteor.subscribe('singleList', params.slug)); }
listRoutes.route('/:slug', {
name: 'list',
subscriptions: function (params) {
this.register('singleList', Meteor.subscribe('singleList', params.slug));
},
action: function () {
FlowLayout.render('mainLayout', {
main: 'list'
});
}
});
server/publication/lists.js
Meteor.publish('singleList', function (slug) {
return Lists.find({slug: slug});
});
client/lists/list.js
Template.list.helpers({
singleList: function () {
return Lists.find();
}
});
Template.list.helpers({
singleList: function () {
return Lists.findOne();
}
});
client/lists/list.html
<template name="list">
{{#if isSubReady}}
{{#with singleList}}
<h2>Name: {{name}}</h2>
{{/with}}
{{/if}}
</template>
尝试将您的
singleList
助手更改为findOne
:
Template.list.helpers({
singleList: function () {
var slug = FlowRouter.getParam("slug");
return Lists.findOne({slug: slug});
}
});
现在,您正试图显示光标的
name
属性,这就是find()
返回的内容。您也不需要把手中的{{{{with singleList}}
。因此,问题是在我的助手中使用find()而不是简单地使用findOne()引起的。我一直坚持使用#with,因此不需要在所有属性前面加上singleList。在助手中使用参数是否比在发布中使用参数有好处?它们有不同的用途。您可以在发布中使用它来控制客户端上需要哪些数据。您可能有理由向管线发布多个列表,但在此特定帮助器中一次仅显示一个列表。这将取决于您的应用程序需要。