将外部脚本合并到Meteor中

时间:2013-05-31 06:52:29

标签: javascript-events meteor

我在Meteor中加入了一个外部主题。它在body标记结束之前加载了一些脚本。当在Meteor模板的<script>内时,<body>标签不起作用。

主题使用js,如Bootstrap,jquery和其他各种可能的外部JS库(它也放在最后,</body>之前。最后一个脚本就是这个custom.js脚本就是这个特定于主题。除了常规函数语句之外的脚本内部,有两个匿名函数,顶层有两个if块,一个$(document).ready回调和一个$(window).load回调。

加载脾气最少的脚本的最佳方法是什么?我试图将所有脚本移到Meteor模板的<head>内。但是缺少一些效果。我想也许$(window).load没有在适当的时候被调用。所以我在Template.scriptAppend.rendered内调用它,其中scriptAppend是</body>结尾之前的部分模板。我还移动了if中的两个匿名函数和两个$(window).load块。它有效,但这是一个麻烦。有没有办法让脚本保持不变?

在所有这些之前,我最初只是认为我会使用jQuery在<script>内添加Template.scriptAppend.rendered标签,但似乎没有效果,我不明白为什么。

所以我的问题是,(1)有没有办法让脚本保持原样;(2)Meteor <head>何时得到处理?显然$(window).load没有在脚本预期的正确时间执行。

1 个答案:

答案 0 :(得分:1)

有时Meteor以不同于普通Web服务器的顺序加载文件,这意味着您的功能将不会像您习惯的那样加载。在脑袋中包含外部脚本就可以了,但是你应该尝试将$(document).ready()函数中通常包含的所有内容放在Template.templatename.rendered函数中。这对我来说已经成功了。