有一种方法可以在加载模板后运行脚本吗?
我在流星上完全是noob,所以我想在我的template.html加载之后加载我的scripts.js
,没有流星我把那些脚本放在身体上并起作用,但是现在我使用流星它看起来像流星载荷所有脚本同时出现和问题一样,我需要首先加载模板,然后加载脚本
所以我的问题是它有一种方法可以将脚本放在某处并在模板完成加载时给他打电话?
答案 0 :(得分:1)
我可能会离开这里,但我想你会想到这个有点不同。 Meteor背后的整个想法是不关心强制脚本的加载顺序。如果您需要在加载页面后触发某些事件,请将其置于Template.rendered
回调中。尝试阅读此https://docs.meteor.com/#/full/template_rendered以获得更好的主意。通过这种方式,模板就绪,你可以做任何你想做的事。
答案 1 :(得分:1)
首先,将classie.js和sidbarEffects.js放入公共目录,以便Meteor不捆绑它们。
然后在任何body标签内添加以下内容:
<div id="bottomJS"></div>
<script>
var classyJS = document.createElement('script');
classyJS.src = "js/classie.js";
var bottomJsTag = document.getElementById('bottomJS');
bottomJsTag.parentNode.insertBefore(classyJS, bottomJsTag);
var sidebarEffectsJS = document.createElement('script');
sidebarEffectsJS.src = "js/sidebarEffects.js";
var bottomJsTag = document.getElementById('bottomJS');
bottomJsTag.parentNode.insertBefore(sidebarEffectsJS, bottomJsTag);
</script>
您可以将modernizer.custom.js留在客户端目录的根目录。
我将normalize.css放在客户端lib中,剩余的css放在client / css中。
这个解决方案对我有用,祝你好运。解决方案受到我几天前所做的YouTube API实施的启发。
答案 2 :(得分:0)
编辑:我刚刚重新阅读了您的问题,并注意到您希望在加载html后加载.js
。这种情况有什么特别的原因吗?通常这与你想要的完全相反。
授予我正确理解您,在您的文件夹结构中,您应该有一个client
文件夹。在该client
文件夹中,创建一个lib
文件夹。该文件夹中的任何内容都将在其他任何内容之前加载。
Here来自关于Meteor的一个非常正式的常见问题解答,在学习Meteor的一些基础知识时将是一个非常好的帮助。它得到了Meteor社区非常活跃的成员的支持。