我有这个布局模板:
<template name="layout">
{{> yield }}
{{> tail }}
</template>
现在Meteor在开始渲染{{> yield }}
{{> tail }}
完全呈现
这是尾巴。这里的HTML需要在创建剩余的DOM之后加载(我使用的是Bootstrap模板)。
<template name="tail">
<!-- Plugin JavaScript -->
<script src="http://cdnjs.cloudflare.com/ajax/libs/jquery-easing/1.3/jquery.easing.min.js"></script>
<script src="/js/classie.js"></script>
<script src="/js/cbpAnimatedHeader.js"></script>
<!-- Contact Form JavaScript -->
<script src="/js/jqBootstrapValidation.js"></script>
<script src="/js/contact_me.js"></script>
<!-- Custom Theme JavaScript -->
<script src="/js/agency.js"></script>
</template>
在呈现所有其他模板后,如何在tail.html
内部呈现HTML?
我可以使用:
Template.layout.rendered = function(){
var scripts = '\
<!-- Plugin JavaScript -->\
<script src="http://cdnjs.cloudflare.com/ajax/libs/jquery-easing/1.3/jquery.easing.min.js"></script>\
<script src="/js/classie.js"></script>\
<script src="/js/cbpAnimatedHeader.js"></script>\
\
<!-- Contact Form JavaScript -->\
<script src="/js/jqBootstrapValidation.js"></script>\
<script src="/js/contact_me.js"></script>\
\
<!-- Custom Theme JavaScript -->\
<script src="/js/agency.js"></script>\
';
$('body').append(scripts);
};
但这很难看。它将尾部代码分解为一个字符串,强制您添加\
,这使得以后编辑代码变得非常困难。
答案 0 :(得分:0)
var head = document.getElementsByTagName('head')[0];
var script = document.createElement('script');
script.type = 'text/javascript';
script.onreadystatechange = function() {
// if (this.readyState == 'complete') { callFunctionFromScript(); }
}
script.src = 'path/to/your-script.js';
head.appendChild(script);
你可以直接将其添加到
里面的html head标签中Template.layoutHeader.rendered = function() { .. }