我可能会在文档中丢失相当明显的东西或遗漏的东西.我搜索并没有找到类似的问题.发布它
这两个
return Items.find({},{sort: {time: -1},limit: 10});
要么
return Items.find({},{sort: {time: -1}).limit(10);
导致流星不能用跳过或限制观察查询
解决方法
更新:这是一个更长的问题.从Meteor 0.5.3开始,您可以使用跳过和限制选项观察查询.
不幸的是,这是真的:mimimongo软件包当前不支持使用skip或limit选项的游标调用观察.这没有什么好的理由它只是没有实现.
Template.name.items = function () { // fetch array of all the items var items = Items.find({},{sort: {time: -1}}).fetch(); // return only the first 10 items to the template return items.slice(0,10); };
解决方法的缺点是效率.如果您的帮助器返回一个游标(只返回Items.find的值而不调用fetch,那么当只有一个项目更改时,或者如果插入了一个新项目,模板系统就足够聪明,不能重新计算整个模板.
另一方面,在帮助器中调用fetch会对整个查询结果注册一个依赖关系,所以随着查询中的任何对象的更改,整个模板都会被重新计算.
没有别的区别模板将在屏幕上放置相同的东西,当它必须重新绘制时,它将保留表单元素的内容.