我目前正在使用Meteor,materializecss氛围包和用户帐户:物化大气包。我正在尝试使用基于类的设备样式来更改用户帐户的样式:实现登录页面,该页面由{{> atForm}}模板创建。
Template.atForm.onRendered( function(){
var element = $(".at-form, .at-btn");
element.addClass("grey lighten-2 grey-text text-darken-4");
});
这在最初呈现页面时非常有用。但是,如果我登录,然后注销,则会再次显示登录模板,但这次没有调用onRendered()函数,并且我的样式丢失了。我该如何避免?
是否有更好的方法来影响第三方模板中的元素而不是调用onRendered()?
答案 0 :(得分:0)
我建议使用https://github.com/aldeed/meteor-template-extension来覆盖您自己的包模板。我认为更简单的方法。
@Kyll - 我觉得自述文件就足够了一个例子;以下是如何使用它:
使用以下命令将包添加到流星项目中:
meteor add aldeed:template-extension
添加新模板
<template name="myTemplate">...</template>
在客户端的启动代码中,覆盖模板:
Template.myTemplate.replaces("originalTemplateName");
答案 1 :(得分:0)
问题是at-form有子模板可以改变。您需要为每个人处理onRendered,以确保您的所有类都应用于它们。