在过去的两周里,我一直在建造一个Meteor项目,我想对那些曾经使用过Meteor的人们的负载顺序有所了解。
拿这个模板:
http://bootstraptaste.com/free-one-page-bootstrap-template-amoeba/
所有重要的javascript文件都在index.html的底部引用。如果您尝试将其移植到Meteor项目中,祝您好运,让所有效果和动画发挥作用,尤其是那些main.js
简单地将脚本标签留在底部意味着大量的javascript和jQuery动画将无法正常工作,因为在Meteor中,完全可能在整个DOM加载之前加载JS文件。这打破了很多事情。
使用Meteor,任何名为main。*的文件都将在其他所有文件后加载。
请注意,这似乎只表示main。* 在其他所有内容后启动。它没有说明文件何时完成加载。 main.js
中的脚本仍无效。
如果我将所有脚本标记放入他们自己的main.html
中,然后将其作为模板附加到index.html
,则动画仍无效。
我试过
Template.layout.created = function(){ $( '头')追加( '')。 }
这也行不通。
无论如何,其他任何人都有像Meteor这样的重大问题?还有任何最佳实践或解决方法吗?
答案 0 :(得分:2)
通常,您不希望在Meteor中使用脚本标记。只需将.js文件添加到项目中,它们就会自行加载。标准做法是将jQuery插件等放在lib文件夹中。 Meteor首先在lib文件夹中加载东西。
在Meteor中思考这些事情的方式与其他框架不同。一旦你把skrollr.min.js等东西放到项目中,你就可以在任何地方调用它。如果您使用链接标记,则同样的协议适用于css。
在加载DOM之后做一些事情,你正在寻找
Template.myTemplate.rendered = function ( ) { ... }
第一次渲染DOM后调用此方法。 .created发生在加载模板的位置,因此DOM还不可用。
如果没有查看链接过多的示例模板,您似乎希望将main.js中的登录信息放入适当模板的渲染回调中。
因此,如果您尝试在实时演示中重新创建该页面,我会将所有html放在模板中,在项目中包含所有css和js资源,删除所有链接和脚本标记并添加main.js要渲染的东西。