【发布时间】:2014-11-20 01:10:10
【问题描述】:
我正在阅读网站 Meteortips.com 上的简单教程以了解会话变量,但我在检索对象 ID 时遇到了问题。
当我逐字按照说明进行操作时,我会得到以下代码:
Template.leaderboard.events({
"click .player": function(){
var playerId = this._id;
Session.set("selectedPlayer", playerId);
console.log(playerId)
}
})
当我登录playerId 时,根据教程,我应该以546d2e4e1c9a86a33e37005d 的形式获取id,但我以以下形式获取它:
LocalCollection._ObjectID
{_str: "546d2e531c9a86a33e37005e",
toString: function,
equals: function,
clone: function,
typeName: function…}
然后我想尝试使用toString(),这最终使等效性测试在本教程的后面部分工作(因此它解决了问题),但当我期待@987654331时它仍然返回ObjectID("546d2e461c9a86a33e37005c") @ 没有 ObjectID() 包裹它的东西。
我怎样才能得到id 没有所有额外的东西?
编辑
值得注意的是,我使用 Nitrous.io 在 Chromebook 上完成了所有这些操作。我将 Nitrous.io 中的代码处理到 Meteorpad here 中,它按预期工作。
在 Nitrous.io 中获得我想要的 id 的唯一方法是使用 this._id._str 而不仅仅是 this._id。我仍然不知道为什么会这样......但这就是发生的事情。
【问题讨论】:
-
当您将播放器插入集合时,您是自己设置
_id,还是让服务器为您设置? -
我让服务器设置它。
-
这不应该发生。您可以在meteorpad 中复制它吗?
-
哈哈。不错的编辑。我警告过你关于nitrous.io!
标签: javascript mongodb meteor nitrousio