我试图在Meteor应用中为特定路线/页面调整一些页面背景css设置。我能够通过使用Template.template.rendered / destroyed和jQuery选择器在渲染模板时注入css,如下所示:
Template.template.rendered = function() {
$('html, body').css({
"background-color": "#fdfdfd",
...additional css properties
};
};
Template.template.destroyed = function() {
$('html, body').css({
"background": "none"
};
};
我想知道是否有人知道更好的方法来做到这一点。它似乎有点慢,当使用浏览器上的后退按钮返回页面时,页面似乎冻结了大约5秒钟。在钩子之前/之后使用铁制路由器更好吗?我对它们并不太熟悉,但这种缓慢似乎是一个浏览器问题。我的想法是前/后挂钩有助于解决这个问题。除了这两种方法之外还有其他选择吗?感谢。
答案 0 :(得分:2)
除非您真的,否则需要以某种特定于某些页面的方式将样式直接附加到html
和body
元素,我会这样做强烈建议使用width: 100vw;
和height: 100vh;
以及相应的id
将每个整页包装在div中,然后使用后者直接使用css进行样式设置。
如果您 需要直接附加到html
和body
元素,您是否尝试使用铁路由器中的onAfterAction
挂钩执行此操作?似乎是一个更好的地方,因为造型取决于路线,而不是模板(即使Blaze意味着你可能可以逃脱你正在做的事情。)