当值位于数组或属性中时,让Meteor templatehelper返回true
在我的HTML中有一个handlebar#if助手,因此我只能向游戏中的第一个玩家显示一些按钮 detailssubmit.html当值位于数组或属性中时,让Meteor templatehelper返回true,meteor,Meteor,在我的HTML中有一个handlebar#if助手,因此我只能向游戏中的第一个玩家显示一些按钮 detailssubmit.html {{#if owner}} show this text {{/if}} 我的游戏收藏: {_id: id, active: true, players: [id, id] owner: id } 在我的助手中,我的所有者函数总是返回false Template.DetailsSubmit.helpers({ details: functi
{{#if owner}}
show this text
{{/if}}
我的游戏收藏:
{_id: id,
active: true,
players: [id, id]
owner: id
}
在我的助手中,我的所有者函数总是返回false
Template.DetailsSubmit.helpers({
details: function() {
return GameDetails.find({gameId: this._id})
},
owner: function() {
var game = Games.find({_id: this._id});
var id = Meteor.userId();
// #1 try
return (game.owner === id)
// #2 try
return ( _.first(game.players) === id )
}
})
我错过了什么吗。如果我使用
Games.find().fetch()
因此,可用的数据应该是好的 当您只需要一个文档时,请使用
findOne
而不是find
<代码>游戏。查找(…)将返回光标,而不是文档
var game=Games.findOne({u-id:this.\u-id});
//或者将此速记-findOne用于字符串参数finds by _id:
var game=Games.findOne(this.\u id);
谢谢。但是如何访问此文档的特定属性。例如,我无法执行game.owner或game.Player[0]。这将导致未定义的错误。那么该集合中没有具有该\u id的文档。您可以将console.log(this)
添加到该助手并发布它所说的内容吗?你可能想要{u id:this.gameId}
?好的。所以console.log(这个)指的是游戏集合,我在路由器的数据函数中设置了它。这可能会产生错误,因为:console.log(this.players)输出正常,但console.log(game.players)会产生错误。但是,参考此。玩家[0]仍然返回一个未定义的错误。您能否发布console.log(this)
的确切输出?当你说它指的是游戏收藏时,你的确切意思是什么(整个收藏,还是仅仅一个文档?)它指的是一个独特的文档。我不能很好地粘贴在这里。但我已经创建了不同的用户帐户来测试它。游戏集合中的每个文档最多有2个用户,对于第三个玩家控制台。log(this)指的是一个具有唯一_id的唯一文档。在我的路由器中,我已将数据函数设置为:games.findOne(this.params._id),它已设置了此。