Gua*_*ard 47 javascript meteor
有一些服务(如FB like或AddThis)提供了一段代码.看起来像
<div class="service-name" data-something="x"></div>
<script type="text/javascript" src="http://service-domain.com/service-name.js"></script>
Run Code Online (Sandbox Code Playgroud)
好的,很酷,所以通常你把它粘贴到你的HTML上就行了.不是流星.
这是我看到的:
<script>
模板/正文内部没有加载 - 我没有在参考资料中看到它,Meteor中的某些东西实际上是阻止浏览器将其识别为JS文件<head>
现在这里是问题和疑问:
<head>
- 因为速度而且令人惊讶的是你不能在中使用模板助手/变量<head>
.
对于传统的框架,它根本不是一个问题 - 您可以在任何地方包含脚本,只需加载它们; 您可以在服务器模板的任何部分使用逻辑/变量.
那么,我应该如何在Meteor中做到这一点?让我再说一遍:
我知道使用Template.created上的代码(使用LAB.js或其他)加载动态脚本来实现此目的的方法,但这太过分了......
Rah*_*hul 25
<script>
Meteor不会执行正文或模板中的标记,它们会被解析,然后由Meteor的模板系统处理.您不能指望其中任何一个中的脚本标记与普通HTML页面一样工作.
解决方案是使用模板事件(您可以手动将脚本标记附加到正文或其他内容)或者像您所说的那样动态加载它.这不是矫枉过正,这是Meteor的工作原理 - 记住,没有传统的HTML页面或正文,只有Meteor API,而Meteor API指定为了加载和执行外部脚本,您必须使用适当的API方法.
小智 25
我的解决方案是使用包.有关详细信息,请参阅https://github.com/meteor/meteor/tree/master/packages/spiderable.
Package.describe({
summary: "External script"
});
Package.on_use(function (api) {
api.use(['templating'], 'client');
api.add_files('external_script.html', 'client');
});
<head><script type="text/javascript" src=""//mc.yandex.ru/metrika/watch.js""></script></head>
Run Code Online (Sandbox Code Playgroud)
Kub*_*bek 11
如果您正在使用IronRouter,则可以使用此软件包加载外部scipt:https: //github.com/DerMambo/wait-on-lib
Router.map( function () {
this.route('codeEditor',{
waitOn: IRLibLoader.load('https://some-external.com/javascript.js')
});
});
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
28068 次 |
最近记录: |