2015-08-15 65 views
2

我想在使用Meteor时加载外部脚本。通过MeteorJS加载外部JS/JQuery脚本

目前在我的layout.js中使用此代码取得了一些成功。

Meteor.startup(function() { 
$.getScript('js/scripts.js'); 

});

但是,如果我转到另一个网址并返回到该脚本,脚本不再有效。 (我看到它不工作,因为我的背景封面图像消失。)

感谢在先进的任何人与专业知识,以协助我。

回答

4

任何外部脚本都应该放在client/compatibility中,Meteor会为你加载;无需$.getScript('js/scripts.js');

然后,您可以实例化类的模板脚本:

Template.game.onRendered(function(){ 
    $('.grid').isotope({}); 
}); 
+0

不为那些需要在身体的末端被加载,资产已经被加载后,某些脚本。 (例如scripts.js和parallax.js) – eddiewang

+0

确实如此。只要确保在模板准备就绪时始终加载该脚本。在流星世界中,你会做'Template.game.onRendered(function(){});'(就像你发现了你自己)。我没有看到它会在哪里寻找'/ js/scripts.js'。我希望我的公共目录。但由于很多原因,这是不好的做法。 –

+0

你说得对。我明白为什么这是不好的做法。我更新了我的代码以使用您的代码!此外,出于某种原因,仅限于50%的时间内,Render。我认为同位素方法搞乱了(onRendered不考虑要加载的图像,所以scripts.js在加载图像之前执行砌体/灯箱函数)。 你知道吗?如果这是问题,我该如何解决它,或b。我完全错了,这是另一个问题。 – eddiewang

1

对于任何需要此帮助的人,请使用Template.name.onRendered替换Meteor.startup。这有助于解决我的问题。 干杯!