如何从Meteor包中修改DOM

时间:2015-02-24 11:05:02

标签: meteor

我需要从meteor包中删除一个类<div>,但以下代码不起作用:

if (Meteor.isClient) {
  Meteor.startup(function () {
    $('div').removeClass('class-to-remove');
  });
}

文档说:

  

在客户端上,首先调用来自包的启动回调,然后是.html文件中的模板,然后是应用程序代码。

有一种方法可以从包内修改DOM吗?

1 个答案:

答案 0 :(得分:0)

您是否尝试过vanilla JS代码而不是jQuery?

document.getElementById('divId').classList.remove('class-to-remove');

编辑:附上新样本

我们说我们有这个模板标记:

<template name="appBody">
  <div id="myCustomDiv" class="I-will-stay-here I-will-be-removed-by-package">
    ...
  </div>
</template>
  

在包下创建一个自定义js文件(例如/ lib)并在那里添加你的DOM操作代码e.G:    [项目根目录] / packages / [您的包裹] /lib/my-custom.js

if (Meteor.isClient) {
    Template.body.rendered = function() {
        $('#myCustomDiv').removeClass ('I-will-be-removed-by-package');
    };
};

package.js 中,确保您拥有以下 api.use 配置:

 api.use(['jquery','templating','spacebars','blaze','ui'], 'client');
 api.addFiles('/lib/my-custom.js','client');

Working sample I've done on github to showcase the solution