我的应用中有主页、联系页面和其他几个与产品相关的页面。
目标是仅将背景图应用于特定路由:/homepage
和 /contact
。如果用户从任一路由导航离开,则应用一些 CSS 更改。
我现在正在使用主页上的帮助程序来实现这个目标,如下所示:
Template.homepage.rendered = function () {
var route = Router.current();
if ( route.path == '/' ) {
document.body.className = "showBackgroundImage";
}
};
部分胜利,因为这将激活CSS,但我需要在路由更改时停用。我还尝试了以下方式在我的router.js
中:
this.route('homepage', {
path: '/',
onAfterAction: function (argument) {
// add a class name to body
document.body.className = "showBackgroundImage";
}
});
在后台标准中,CSS是指:
.showBackgroundImage {
background: url(bgImage.jpg) no-repeat center center fixed;
}
Template.layout.rendered = function() {$('body').addClass('layoutBody')};
然后Template.layout.destroyed = function() {$('body').removeClass('layoutBody')};
- Hubert OGRouter.current().route.getName()
来获取当前路由名称(注意从route.name
变为了route.getName()
)。 - Isaac Gregsonroute
现在是function
而不是普通的object
,在JS中,name
是包含function
名称的function
的默认属性,因此需要新的getName()
getter。 - saimeunt