Meteor删除新路线上的收藏

Meteor删除新路线上的收藏,meteor,iron-router,Meteor,Iron Router,我有一个使用两个集合的简单列表和详细视图。 当我导航回列表视图时,Meteor将删除添加到details集合中的单个文档,并撤消对其他集合的更改 我想保留这些数据,这样客户端就不必一直重新加载它 “联盟”和“排名”订阅在导航回根目录时都是“撤消”的。联赛和联赛路线都使用“weeks”Mongo系列。当导航到联盟详细信息时,我会将其添加到单个文档中。导航到细节效果很好。。。当我导航回列表时,我丢失了收集的数据 我需要“缓存”所有这些数据,但我显然没有正确处理这些数据 Router.map(函数()

我有一个使用两个集合的简单列表和详细视图。 当我导航回列表视图时,Meteor将删除添加到details集合中的单个文档,并撤消对其他集合的更改

我想保留这些数据,这样客户端就不必一直重新加载它

“联盟”和“排名”订阅在导航回根目录时都是“撤消”的。联赛和联赛路线都使用“weeks”Mongo系列。当导航到联盟详细信息时,我会将其添加到单个文档中。导航到细节效果很好。。。当我导航回列表时,我丢失了收集的数据

我需要“缓存”所有这些数据,但我显然没有正确处理这些数据

Router.map(函数(){
这条路线(‘联盟名单’{
路径:'/'
});
这条路线(“联盟”{
路径:'/league/:league',
模板:“排名”,
waitOn:函数(){
console.log(this.params.league);
return[Meteor.subscribe('league',this.params.league),
Meteor.subscribe('排行榜',这是params.league)];
},
数据:函数(){
return{theLeague:Leagues.findOne({league:this.params.league}),
Standings:Standings.findOne()};
}
});
});
服务器:

Meteor.publish('leagues',function(){ console.log(“发送所有联盟名称”); 返回联盟。查找({},{fields:{weeks:0}); }); Meteor.publish('league',函数(theLeague){ log('sending weeks detail for:'+长度); 返回联盟。查找({league:theLeague}); }); Meteor.publish(‘排行榜’)功能(theLeague){ console.log('standings:'+长度); var file=Leagues.findOne({league:theLeague}).weeks[0]。文件; 返回排名。查找({file:file}); }); 客户:

Leagues=新流星系列('weeks');
排名=新流星系列(“细节”);
Meteor.订阅(“联盟”);

在iron router中,有一项工作正在进行中,以允许(并优化)这一点(当您路由到另一个页面时,不会立即停止订阅)。看看树枝

但是如果您在waitOn调用之外创建订阅,我认为订阅永远不会停止。例如,在下面的代码中,路由
a
c
将等待接收初始数据(当用户加载页面时将直接获取初始数据(即使它使用路由
b
),并且对它的订阅将永远不会停止,即使您离开,例如,路由
a
)。但是,如果您需要在路由中使用某些参数,我认为您不能使用这种方法(您可能可以使用
setInterval
修复某些问题,但这会很难看)

var handleToDataIMostlyNeed=Meteor.subscribe('initialData')) Router.map(函数(){ 这条路线('a'{ waitOn:function(){ 回程手柄 } }) 这条路线('b'{ waitOn:function(){ return[]//不等待。 } }) 这条路线('c'{ waitOn:function(){ 回程手柄 } }) })
能否显示要添加到集合中的代码?另外,你在服务器上的权限是什么(
allow
rules)?除了我刚才添加的Meteor.scubscirbe('leagues')之外,这是所有的代码。。。而不是模板。该集合通过Meteor.subscribe('league',this.params.league)添加到路由内部。请查看waitOn属性以了解“league”路由。Peppe谢谢!我刚看了副经理的文件,这看起来正是我需要的!所以我所做的还有希望!!!