【发布时间】:2014-11-10 19:42:38
【问题描述】:
有没有办法在加载一些模板后运行脚本?
我对流星完全是菜鸟,所以我想在我的 template.html 加载后加载我的scripts.js,没有流星,我将那些脚本放在主体上并工作,但现在我使用流星,它看起来像流星加载所有脚本同时在问题上,我需要先加载模板,然后再加载脚本
所以我的问题是有没有办法将脚本放在某个地方并在模板完成加载时给他打电话?
【问题讨论】:
标签: javascript jquery meteor
有没有办法在加载一些模板后运行脚本?
我对流星完全是菜鸟,所以我想在我的 template.html 加载后加载我的scripts.js,没有流星,我将那些脚本放在主体上并工作,但现在我使用流星,它看起来像流星加载所有脚本同时在问题上,我需要先加载模板,然后再加载脚本
所以我的问题是有没有办法将脚本放在某个地方并在模板完成加载时给他打电话?
【问题讨论】:
标签: javascript jquery meteor
我可能会离开这里,但我想你会想以不同的方式思考这个问题。 Meteor 背后的整个想法是不关心强制脚本的加载顺序。如果您需要在页面加载后触发某些事件,请将其放入 Template.rendered 回调中。尝试阅读此https://docs.meteor.com/#/full/template_rendered 以获得更好的想法。这样模板就准备好了,你可以做任何你想做的事情。
【讨论】:
首先,将 classie.js 和 sidbarEffects.js 放入公共目录,这样 Meteor 就不会捆绑它们。
然后在任何正文标签内添加以下内容:
<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 实施启发的解决方案。
【讨论】:
编辑:我刚刚重新阅读了您的问题,并注意到您想在 html 加载后加载您的 .js。有什么特别的原因吗?通常这与您想要的完全相反。
当然,我对您的理解是正确的,在您的文件夹结构中,您应该有一个 client 文件夹。在该 client 文件夹中,创建一个 lib 文件夹。该文件夹中的任何内容都会先于其他内容加载。
Here 来自一个关于 Meteor 的可靠的非官方常见问题解答,在学习 Meteor 的一些基础知识时将是一个非常好的帮助。它得到了 Meteor 社区非常活跃的成员的支持。
【讨论】:
.js 文件放在正确的lib 文件夹中,它应该可以正常工作。我可以想到在页面加载后您想要加载.js 的任何时间。您设置文件夹的方式一定有一个小错误。