延迟加载模块

时间:2016-06-23 17:54:32

标签: angularjs lazy-loading oclazyload

每当我尝试进入profile状态时,我都会回到home状态(控制台中没有错误)。

这是我的设置:

app.js

angular.module('app',[
 'oclazyLoad'
 'app.components'
])
.config(['$stateProvider', '$urlRouterProvider', '$locationProvider', '$httpProvider',
    function ($stateProvider, $urlRouterProvider, $locationProvider, $httpProvider) {
        $urlRouterProvider.otherwise('/');
        //$locationProvider.html5Mode(true);

        $httpProvider.interceptors.push('jwtInterceptor');

        function lazyLoad(pathjs) {
            return ['$ocLazyLoad', function ($ocLazyLoad) {
                return $ocLazyLoad.load(pathjs);
            }];
        }

        $stateProvider
            .state('home', {
                url: '/',
                template: 'asd'
            })
            .state('profile', {
                url: '/profile',
                templateUrl: 'components/profile/profile.html',
                controller: 'profileCtrl',
                controllerAs: 'vm',
                resolve: {
                    module: lazyLoad('components/profile/profile.js'),
                    user: ['SessionService', function (SessionService) {
                        return {fake: 'user'};//SessionService.currentUser(true);
                    }]
                }
            })
    }]);
angualar.module('app.components',[]);

profile.js

angular.module('app.components')
 .controller('profileCtrl', ['user', function(user){
  var vm = this;
  vm.test = 123;
 }]);

profile.html

<div>{{vm.test || 1}}</div>

1 个答案:

答案 0 :(得分:0)

这是一个令人尴尬的问题,但我忘了在我的$http拦截器jwtInterceptor中返回响应。