我发现当从第一条路径传递到第二条路径时,IronRouter以及FlowRouter都不会重新呈现模板itemListDetails
。我知道这可以通过重新定义逻辑来完成和绕过,但我的目标是尽可能地获得最干净的代码,同时利用可以在Template.subscribe
函数上调用的最新OnCreated
。模板。
FlowRouter.route('/:shop/items',{
action: function(params) {
FlowLayout.render('shopsLayout', {menu:'itemList'});
FlowLayout.render('shopsLayout', {main:'itemListDetails'});
}
});
FlowRouter.route('/:shop/items/:item',{
action: function(params) {
FlowLayout.render('shopsLayout', {menu:'itemList'});
FlowLayout.render('shopsLayout', {main:'itemListDetails'});
}
});
Template.itemListDetails.onCreated(function () {
var shopN = FlowRouter.current().params.shopNumber;
var self = this;
self.autorun(function () { self.subscribe("itemsCollection", shopN); });
});
一开始我认为这是一个IronRouter问题(已经在stackoverflow中已经列出了),但当我切换到FlowRouter时,我意识到这不是一个错误:只是两个路由器都没有创建模板..因为它已经创建。
我的问题是:如何请求从其他模板上的操作中销毁/删除itemListDetails
模板?