Meteor {{yield}}不显示帖子

时间:2015-04-30 12:57:45

标签: javascript meteor

我有main.html个文件也是layout.html个文件。在布局中,它包含此代码

<template name="layout">
<div class="container">
<header class="navbar">
    <div class="navbar-inner">
        <a class="brand" href="{{pathFor 'postsList'}}">Test</a>
    </div>
</header>
    <div id="main" class="row-fluid">
        {{yield}}
    </div>
</div>

然后我有一个publications.html文件

    Meteor.publish('posts', function() {
    return Posts.find();
});

router.js文件

Router.configure({
 layoutTemplate: 'layout',
 loadingTemplate: 'loading',
 waitOn: function() { return Meteor.subscribe('posts'); }
});
Router.map(function() {
 this.route('postsList', {path: '/'});

 this.route('postPage', {
    path: '/posts/:_id',
    data: function() { return Posts.findOne(this.params._id); }
 });
});

然后我的posts_list.html

<template name="postsList">
 <div class="posts">
     {{#each posts}}
        {{> postItem}}
     {{/each}}
 </div>

集合

    if (Posts.find().count() === 0) {
 Posts.insert({
 title: 'Twitter',
 author: 'Tom',
 url: 'http://twitter.com'
 });
 Posts.insert({
 title: 'Facebook',
 author: 'Mark',
 url: 'http://facebook.com'
 });
}

我的显示页面出现了对象错误。它没有显示我的帖子,只是[object Object]。任何原因,我的路线是否正确?

这是错误的图像!

Object

1 个答案:

答案 0 :(得分:1)

您需要使用alarmManager.set(AlarmManager.ELAPSED_REALTIME_WAKEUP, alarmDelay, pendingIntent); 代替{{> yield}}

长解释:{{yield}}构造告诉Meteor在那里渲染模板;否则,它会尝试转换为将助手调用到字符串的结果。获得{{> ...}}的原因是因为[object Object]助手是一个对象;你可以通过记录来看到它:

yield

这导致......

console.log(Blaze._globalHelpers.yield);

对象在转换为字符串时,呈现为“[object Object]”。您可以在控制台中进行确认:

{viewName: "yield", renderFunction: function, __helpers: HelperMap, __eventMaps: Array[0], _callbacks: Object…}