Ste*_*ieB 16 lazy-loading angularjs webpack oclazyload
现在在我的index.html
页面中,我有两个CDN文件的链接,一个是JS,另一个是CSS文件.
即在我身体的底部
https://somedomain.com/files/js/js.min.js
Run Code Online (Sandbox Code Playgroud)
并在头部
https://somedomain.com/files/css/css.min.css
Run Code Online (Sandbox Code Playgroud)
但是现在我们的主页上不需要它们,只是在一条特定的路线上.所以我正在研究如何在路由被攻击时延迟加载这些CDN资源,即/profile
只有这样?
这些不是通过bower或npm安装的,而是通过CDN url加载的,例如jquery.如何在Angular 1和Webpack中根据路由延迟加载?
Ara*_*ind 11
在这里,你可以使用oclazyload.看看下面的代码.下面连接一个plunker
我有一个名为myApp的模块,如下所示
angular.module('myApp', ['ui.router','oc.lazyLoad'])
.config(function ($stateProvider, $locationProvider, $ocLazyLoadProvider) {
$stateProvider
.state("home", {
url: "/home",
templateUrl: "Home.html",
controller: 'homeCtrl',
resolve: {
loadMyCtrl: ['$ocLazyLoad', function ($ocLazyLoad) {
return $ocLazyLoad.load('homeCtrl.js');
}]
}
})
.state("profile", {
url:"/profile",
templateUrl: "profile.html",
resolve: {
loadMyCtrl: ['$ocLazyLoad', function ($ocLazyLoad) {
return $ocLazyLoad.load('someModule.js');
}]
}
})
});
Run Code Online (Sandbox Code Playgroud)
我有另一个名为someApp的模块,如下所示
(function () {
var mynewapp=angular.module('someApp',['myApp']);
mynewapp.config(function(){
//your code to route from here!
});
mynewapp.controller("profileCtrl", function ($scope) {
console.log("reached profile controller");
});
})();
Run Code Online (Sandbox Code Playgroud)
我在这里有一个Live Plunker用于你的演示
归档时间: |
|
查看次数: |
4516 次 |
最近记录: |