由于我关闭了自动发布,因为它在现实世界中不切实际,我的模板停止呈现集合(#each 似乎没有循环)。我已经为集合设置了手动发布/订阅,当我将本地集合记录到控制台时,我可以看到其中包含项目,但模板无法呈现项目。
为了保持模板的自动更新特性,手动子/发布集合时我需要做些什么吗?
这是我创建的稀释测试用例:
// client
Col = new Meteor.Collection('testcol');
// I have tried wrapping this in autosubscribe as well:
Meteor.subscribe('testcol', function() {
return Col.find();
});
Template.hello.items = function() {
var col = Col.find();
if (col) {
console.log("Test items" , col);
return col.fetch().items;
}
}
// server
if (Meteor.is_server) {
Col = new Meteor.Collection('testcol');
Meteor.publish('testcol', function() {
return Col.find();
})
}
// bootstrap:
Meteor.startup(function () {
if (Col.find().count() < 5) {
for (var i=0; i<5; i++) {
Col.insert({
title: 'Test ' + i,
items: [
{title: 'item 1', value:true},
{title: 'item 2', value:false},
{title: 'item 3', value:true}
]
});
}
}
})
// Template
<head>
<title>test</title>
</head>
<body>
{{> hello}}
</body>
<template name="hello">
<h1>Where did the data gone to?</h1>
Items from the test collection:
<UL>
{{#each items}}
<LI> ITEM: {{title}}
{{/each}}
</UL>
</template>