我将要讨论的所有内容的最终结果是副标题不会像我想要的那样在屏幕上呈现。
目前有一个mongo集合子标题,其中包含category
字段和texth
字段。
Subheader = new Mongo.Collection('subheader');
Meteor.methods({
subheaderInsert: function(subheaderIdAttributes) {
check(String);
check(subheaderIdAttributes, {
texth: String,
category: String
});
var subheaderId = _.extend(postAttributes, {
submitted: new Date()
});
var subheaderId = SubheaderId.insert(subheader);
return {
_id: subheaderId
};
}
});
有一条路线订阅了子标题和其他页面数据。
Router.route('/', {
name: 'home',
controller: MissionstatementpostController,
waitOn:function () {
return Meteor.subscribe('subheader', 'home');
}
});
发布功能似乎工作正常。
Meteor.publish('subheader', function(cat) {
return Subheader.find({category: cat});
});
来自mongodb集合的正确文档正在联系客户端。
可以看出这一点Subheader.findOne(); output Object {_id: "NPo5cwqgjYY6i9rtx", texth: "ex text", category: "home"}
问题从这里开始
在这种情况下,控制器加载的模板MissionstatementpostController
为postlist
<template name="postsList">
<div class="posts page">
{{> subheader}}
<div class="wrapper">
{{#each posts}}
{{> postItem}}
{{/each}}
</div>
{{#if nextPath}}
<a class="load-more" href="{{nextPath}}">Load more</a>
{{else}}
{{#unless ready}}
{{> spinner}}
{{/unless}}
{{/if}}
</div>
</template>
这是副标题模板
<template name="subheader">
<div class="container">
<p>{{{texth}}}</p>
</div>
</template>
那我搞砸了什么?
感谢
答案 0 :(得分:0)
您必须为子标题模板创建模板助手。要仅返回texth
字段,帮助程序将是这样的。
Template.subheader.helpers({
texth: function() {
var sh = Subheader.findOne();
return sh && sh.texth;
}
});
您可以返回整个文档并使用模板中的#with
帮助程序。
Template.subheader.helpers({
subh: function() {
return Subheader.findOne();
}
});
<template name="subheader">
{{#with subh}}
<div class="container">
<p>{{{texth}}}</p>
</div>
{{/with}}
</template>
您可以在Meteor Docs上找到有关模板助手的更多信息。