我试图懒惰加载我的角应用程序中的一个指令,使用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 example
感谢
我更新了我的代码,我的路由配置被连接到另一个包含oclazyload依赖项的模块。我更新了我的帖子。我还为指令添加了结束标记,但仍然是同样的问题。 – magneto
你正在声明两个独立的模块。 App和App.Demo,你需要连接它们,添加app.demo作为app的依赖。 仅作为示例,请参阅jon papa撰写的此风格指南的模块部分。 https://github.com/johnpapa/angular-styleguide/blob/master/a1/README.md#modules 另一种选择是让他们在同一个模块,所以你会改变这个“angular.module('应用程序.demo',[])“to”angular.module('app')“ –
谢谢,我没有看到这个。我用“angular.module('app')”更新了我的代码,但仍然没有运气。 – magneto