Meteor Iron:Router 获取 ID 时遇到问题
Meteor Iron:Router Problems Getting ID
有人可以解释为什么我得到的是 ObjectID 的完整值而不是干净的 ID 吗?
这是我得到的:
并且 HTML 输出:
<a href="/summary/ObjectID(%2254ab87a24c38814aa128da7b%22)">My Post</a>
我没有做任何不寻常的事情。现在非常基本的东西。第一次尝试 Meteor。
路由:lib/router.js
// Dashboard
Router.route('/dashboard', {name: 'dashboard'});
// Post detail
Router.route('/summary/:_id', {
name: 'postSummary',
data: function() {
return Post.findOne(this.params._id);
}
});
列表页面模板:templates/posts/post_dashboard.html
{{#each posts}}
<tr>
<td>
<p><a href="{{pathFor 'postSummary'}}">{{title}}</a></p>
<p><small>Created at {{createdAt}}</small></p>
</td>
...
</tr>
{{/each}}
详情页面模板:templates/posts/post_summary.html
<template name="postSummary">
{{> postHeader}}
<h3>{{title}}</h3>
</template>
模板助手:templates/posts/posts.js
Template.dashboard.helpers({
posts: function () {
return Post.find({});
}
});
这是我安装的软件包,以备不时之需。
meteor-platform
autopublish
insecure
matthew:foundation5-sass
iron:router
jquery
useraccounts:core
useraccounts:foundation
accounts-password
accounts-facebook
accounts-google
accounts-ui-unstyled
aldeed:autoform
aldeed:collection2
forwarder:autoform-wizard
fortawesome:fontawesome
当您从控制台查询 Posts
集合时,返回文档中的 _id
是字符串文字还是 ObjectId 对象?
假设是后者,这就是发生这种情况的原因,如果是这样,可能是因为您在 Mongo [=21= 中使用 insert
填充了集合](或者从现有的 MongoDB 恢复)。默认情况下,Meteor insert 在未指定 id 时使用字符串作为自动添加的 id,而 Mongo 使用 ObjectIds。
希望对您有所帮助,但如果我完全走错了路,请告诉我!
Mongo ObjectID 有一个 属性:_str
它包括 ID 的字符串表示形式。
有人可以解释为什么我得到的是 ObjectID 的完整值而不是干净的 ID 吗?
这是我得到的:
并且 HTML 输出:
<a href="/summary/ObjectID(%2254ab87a24c38814aa128da7b%22)">My Post</a>
我没有做任何不寻常的事情。现在非常基本的东西。第一次尝试 Meteor。
路由:lib/router.js
// Dashboard
Router.route('/dashboard', {name: 'dashboard'});
// Post detail
Router.route('/summary/:_id', {
name: 'postSummary',
data: function() {
return Post.findOne(this.params._id);
}
});
列表页面模板:templates/posts/post_dashboard.html
{{#each posts}}
<tr>
<td>
<p><a href="{{pathFor 'postSummary'}}">{{title}}</a></p>
<p><small>Created at {{createdAt}}</small></p>
</td>
...
</tr>
{{/each}}
详情页面模板:templates/posts/post_summary.html
<template name="postSummary">
{{> postHeader}}
<h3>{{title}}</h3>
</template>
模板助手:templates/posts/posts.js
Template.dashboard.helpers({
posts: function () {
return Post.find({});
}
});
这是我安装的软件包,以备不时之需。
meteor-platform
autopublish
insecure
matthew:foundation5-sass
iron:router
jquery
useraccounts:core
useraccounts:foundation
accounts-password
accounts-facebook
accounts-google
accounts-ui-unstyled
aldeed:autoform
aldeed:collection2
forwarder:autoform-wizard
fortawesome:fontawesome
当您从控制台查询 Posts
集合时,返回文档中的 _id
是字符串文字还是 ObjectId 对象?
假设是后者,这就是发生这种情况的原因,如果是这样,可能是因为您在 Mongo [=21= 中使用 insert
填充了集合](或者从现有的 MongoDB 恢复)。默认情况下,Meteor insert 在未指定 id 时使用字符串作为自动添加的 id,而 Mongo 使用 ObjectIds。
希望对您有所帮助,但如果我完全走错了路,请告诉我!
Mongo ObjectID 有一个 属性:_str
它包括 ID 的字符串表示形式。