我在流星中遇到了奇怪的行为 - >铁路由器
this.route('addItem', {
path: '/additem/:_owner',
action: function(){
var c = Presentation.find().count();
var id = Presentation.insert({
owner: this.params._owner,
order: c
});
this.redirect('editItem', {_id: id});
}
this.route('editItem', {
path: '/edititem/:_id',
data: function(){return Presentation.findOne(this.params._id)}
});
在这种情况下,数据为空,但如果c为const(var c = 1),则一切正常:
this.route('addItem', {
path: '/additem/:_owner',
action: function(){
var c = 1;
var id = Presentation.insert({
owner: this.params._owner,
order: c
});
this.redirect('editItem', {_id: id});
}
this.route('editItem', {
path: '/edititem/:_id',
data: function(){return Presentation.findOne(this.params._id)}
});
答案 0 :(得分:0)
演示文稿是客户端上的一个集合。它可能没有任何东西,Collection将与服务器设置在某个时刻发布的任何内容同步,它将在同步时反应性地更新依赖于它的东西,但是在路由中你只是假设它是同步的,这是高度的不太可能。你可以在你的路线上放一个等候。或者使用Meteor方法,或者执行服务器端路由。
答案 1 :(得分:0)
用Meteor metod解决了,但不明白(
下一个代码在控制台rigth vsriables中显示,但数据为空。
this.route('addItem', {
path: '/additem/:_owner',
action: function(){
var c = Presentation.find().count();
console.log('c: '+c);
var id = Presentation.insert({
owner: this.params._owner,
order: c
});
this.redirect('editItem', {_id: id});
}
this.route('editItem', {
path: '/edititem/:_id',
data: function(){console.log('doc: ' + Presentation.findOne(this.params._id));
return Presentation.findOne(this.params._id)}
});