我有以下模板助手输出第一个{{url}}和所有{{thumb}} 但是如果{{thumb}}不确定如何在地图功能中执行此操作,我想跳过第一项。
Template.motionPictures.helpers({
posts: function() {
return Posts.find({}, {fields: {thumb: 1, url: 1}}).map(function(post, index) {
if (index === 0) {
return post;
} else {
delete post.url;
return post;
}
});
}
});
当我在console.log中发布posts数组时,我得到以下内容
这是我的预期,但我希望数组中的第一个对象仅显示其{{url}}而不是{{thumb}}到目前为止所有建议只是删除对象,或者根本不删除。
答案 0 :(得分:1)
您可以使用skip
:
Posts.find({}, {fields: {thumb: 1, url: 1}, skip: 1})..map(fun...
答案 1 :(得分:1)
如果我正确理解了这个问题,你只想在从辅助函数返回之前删除posts数组的第二项。为此,您只需将map
的结果分配给变量,然后在其上调用splice即可。试一试:
Template.motionPictures.helpers({
posts: function() {
var posts =
Posts
.find({}, {fields: {thumb: 1, url: 1}})
.map(function(post, index) {
if (index === 0) {
return post;
} else {
delete post.url;
return post;
}
});
posts.splice(1, 1);
return posts;
}
});
答案 2 :(得分:0)
好的,所以你们两个都有很好的建议但是我没有意识到我必须做什么,直到我做了那个控制台.log。
以下代码正如我想要的那样工作
Template.motionPictures.helpers({
posts: function() {
return Posts
.find({}, {fields: {thumb: 1, url: 1}, sort: {createdAt: -1}})
.map(function(post, index) {
if (index === 0) {
delete post.thumb;
return post;
} else {
delete post.url;
return post;
}
});
}
});