将类添加到由气氛包创建的模板内的DOM元素中?

时间:2015-06-30 22:38:07

标签: javascript meteor meteor-accounts

我目前正在使用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()?

2 个答案:

答案 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,以确保您的所有类都应用于它们。