对于我的应用程序中的某些页面,我想启用一个可打印模式,其中当URL参数包含?print=true
时,页面的某些元素会被隐藏。目前,我尝试了一种解决方法,包括通过铁路由器将URL参数作为数据上下文发送。
this.route('permitsList', {
path: '/permits/',
path: '/',
waitOn: function(){
return Meteor.subscribe('openPermits');
},
data: function(){
return this.params;
}
});
伴随着全球车把助手,用于恰当地展示和隐藏元素。
在这种情况下,当网址包含?print=true
时,显示和隐藏相应的元素是微不足道的。但是,这个解决方案有两个主要问题。第一个是,我希望实现此可打印视图的某些页面已经具有数据上下文。覆盖数据上下文是不可行的,将数据上下文嵌入到更大的对象中是相当令人厌恶的。第二个问题是我希望可打印视图不仅应用于模板本身内部,还应用于呈现页面的周围布局模板中,以便删除无关的标题等。
有没有合理的方法来访问Spacebars助手内的URL参数,而无需通过Iron Router在数据上下文中指定参数?
答案 0 :(得分:1)
总结为答案: 即使没有流星也可以访问查询参数
if ( window.location.search.indexOf( '?print=true' ) > -1 ) { ... }
window.location返回当前URL,window.location.search只将查询参数作为字符串。