在Angular SPA中异步加载脚本
Asynchronously load script in Angular SPA
我有一个Angular应用程序,其中包含指令。一个指令在调用时会构建一个mapbox映射。为了工作,我目前在应用程序最初加载时加载mapbox CSS和JS。这并不理想,因为它降低了初始页面加载的速度,但用户甚至可能无法访问需要此脚本的视图。
因此,我的问题是,当第一次调用指令时,是否有异步加载脚本(可能还有CSS)的方法。第一次之后,如果在另一个视图中再次使用该指令,则不应再次加载脚本。angular-loader.js
也可以这样做吗?
到目前为止,我的示例设置如下:
查看HTML
<ng-map></ng-map>
指令
app.directive('ngMap', ['MapService', function(MapService){
return {
restrict: 'E',
templateUrl: '/partials/map.html',
link: function($scope, element, attrs){
MapService.build();
}
}
}]);
服务
app.service('MapService', [function(){
this.build = function(){
//map bounds
var southWest = L.latLng(54.04407014753034, -0.745697021484375),
northEast = L.latLng(53.45698455620496, -2.355194091796875),
bounds = L.latLngBounds(southWest, northEast);
//build map object
L.mapbox.accessToken = conf.mapbox.token;
map.obj = L.mapbox.map('map', conf.mapbox.id, {
maxBounds: bounds,
zoomControl: false,
minZoom: 11,
attributionControl: false
}).setView([53.80451586014786, -1.5477633476257324], 15, {
pan: { animate: true },
zoom: { animate: true }
});
};
}]);
map.html
<div id="map"></div>
您可以使用requirejs和angular,如下所述。
相关文章:
- Google Adsense多次加载脚本
- 如何准确执行加载脚本&退出弹出窗口
- RequireJ无法随机加载脚本
- 通过浏览器加载页面时触发加载脚本(js或jQuery)'s”;返回“;作用
- 在以前的文件夹中加载脚本
- 如何重新加载脚本标记
- 正在脚本中加载脚本
- 在pjax完成其工作时加载脚本
- I'我用setTimeout加载脚本,你能找到一个更快的方法吗
- 在页面模板上加载脚本
- 如何在我的情况下创建加载脚本
- 当用$.getScript()加载脚本时,有一种方法可以从用$.get script()装载的脚本中调用父脚本中的函数
- 延迟加载 脚本加载和/或执行
- 如何使用谷歌页面速度CSS加载脚本延迟多个CSS文件
- 最后加载脚本
- 如何基于HTML中的类加载脚本
- 在局部视图中加载脚本文件
- 如何防止在使用hapi.js reply().hold()时重新加载脚本
- 异步加载脚本
- 脚本加载脚本广告