延迟加载角度应用程序不会加载指令
Lazy loading angular app doesn't load a directive
我正在尝试使用ui.router和oc.lazyLoad在我的角度应用程序中延迟加载指令。这是我的代码:
菜单:
<ul>
<li><a ui-sref="home">Home</a></li>
<li><a ui-sref="demo">Demo</a></li>
<li><a ui-sref="test">Test</a></li>
</ul>
<ui-view></ui-view>
路由配置:
angular.module('app', ['ui.router', 'oc.lazyLoad'])
.config(['$stateProvider', '$urlRouterProvider', function($stateProvider, $urlRouterProvider) {
$stateProvider
.state("demo", {
url:'/demo',
views: {
'lazyLoadView' : {
template: '<demo-directive></demo-directive>'
}
},
resolve : {
loadDemoModule : ['$ocLazyLoad', function($ocLazyLoad) {
console.log('resolving demo lazy load');
return $ocLazyLoad.load('demo.js');
}]
}
})
.state("home", {
templateUrl : 'core/home.html',
url : '/home'
})
}])
和指令:
angular.module('app').
directive('demoDirective', function() {
return {
restrict: 'E',
scope: {},
template: require('./demo-directive.html'),
// templateUrl: 'demo-directive.html',
controllerAs: 'demo',
controller : ['$timeout', function($timeout) {
console.log('in directive controller');
}]
};
});
我没有错误,显示解析功能中的console.log
,加载了demo.js文件,但随后注意到正在发生,控制台表单指令控制器未显示。我正在尝试遵循ocLazyLoad示例中的第一个示例
谢谢
这样延迟加载怎么样。
return $ocLazyLoad.load({
name: 'app.demo',
files: ['path/to/demo.js']
})
您尚未将 oc.lazyLoad 模块声明为依赖项。
angular.module('app.demo', ["oc.lazyLoad"])
请参阅快速入门 - https://oclazyload.readme.io/docs/
您也不会关闭演示指令
template: '<demo-directive></demo-directive>'
相关文章:
- 指令加载真的很长,检查加载时间的方法
- 在Angular JS中POST后重新加载指令方法
- 如何在控制器中加载指令
- 延迟加载角度应用程序不会加载指令
- 在加载指令模板之前加载指令 ng 包含内容
- ng-repeat中的加载指令(动态模板URL)
- ng-include 忽略加载指令
- 加载指令后运行函数
- 加载指令模板后执行 Javascript
- Meteor AngularJS应用程序未加载指令
- 不要为某些路由加载指令
- 基于值加载指令
- AngularJS在使用服务时未正确加载指令
- 加载指令时调用init函数
- 如何实现AngularJS的加载指令
- 在加载文件时显示一个加载指令
- 在加载指令模板之前没有初始化指令的作用域,导致无法加载谷歌地图
- 在控制器事件上重新加载指令
- 如何管理AngularJS中加载指令模板的404错误
- 当惰性加载指令时,它'We’我们永远不要跑步