我试图弄清楚如何包含外部 javascript 源(图表),但仅限于网站上的单个页面。可以在视图或模板中完成吗?
我发现只需添加<script src="exhibit.js"></script>
页面模板不起作用。如果我将它添加到整个网站的模板中,它加载得很好,但是它会加载到每个页面上。
我的问题的另一面可能更具体地展示。有没有办法让每次加载页面时都获取脚本?示例:当我第一次访问包含展览脚本的页面时,它会加载包含展览的 ember 应用程序,并且页面会正确显示。我离开该页面,当我返回该页面时,展览脚本不会重新加载,因此不会像第一次访问时那样正确地重新绘制页面。
如果您使用 Ember CLI 构建应用程序并且exhibit.js
是一个相当小的文件,您最好包含它exhibit.js
在你的vendor.js
文件以最小化 HTTP 请求。
但是,如果您想加载exhibit.js
在单一路线中,您可以使用中描述的polyfill方法这个答案 https://stackoverflow.com/questions/24727503/how-to-add-date-picker-or-any-general-jquery-plugin-to-ember-cli-app/24728762#24728762像这样:
// app/controllers/some-route-name.js
import Ember from 'ember';
export default Ember.Controller.extend({
loadPlugin: function() {
// Use run loop if you need to setup the DOM first
Ember.run.scheduleOnce('afterRender', this, function() {
Ember.$.getScript('path/to/exhibit.js');
});
}.on('init')
});
这将异步加载文件。这getScript 文档在这里 http://api.jquery.com/jquery.getscript/- 你会发现你也可以使用回调。
如果加载前不需要 DOM 设置,则可以删除运行循环。将此脚本加载到控制器上init
事件将阻止它在每次用户导航到路线时重新加载。如果你do想要在每次可以移动时加载脚本getScript
到视图的didInsertElement
event.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)