2015-01-27 2 views
0

중첩 된 UI 라우터 구성과 관련된 AngularJS 질문이 있습니다. 여기에 훌륭한 커뮤니티가 도움이되기를 바랍니다.각도 UI 라우터가있는 내포 된 라우팅

기본적으로 기본 메뉴 링크에는 표준 app.routes.js가 있습니다. 코드 (무슨 가치에 손질 및 제네릭) :

angular.module('app',[ 
    'ui.router', 
    'ui.bootstrap', 
    'oc.lazyLoad', 
    'app.links' 
]) 
    .config(['$stateProvider','$urlRouterProvider',function($stateProvider,$urlRouterProvider){ 
     $stateProvider 
      .state('index',{ 
       url:'/', 
       views:{ 
        'index':{ 
         templateUrl:'app/app.view.html' 
        }, 
        '[email protected]':{ 
         templateUrl:'app/components/core/header/header.view.html', 
         controller:'HeaderController as headerCtrl' 
        } 
       }, 
       resolve:{ 
        loadLayoutModules:['$ocLazyLoad', function($ocLazyLoad) { 
         return $ocLazyLoad.load([ 
          { 
           name:'app.header', 
           serie:true, 
           files: [ 
            'app/components/core/header/header.module.js', 
            'app/components/core/header/header.service.js', 
            'app/components/core/header/header.controller.js', 
            'app/components/links/links.module.js', 
            'app/components/links/links.routes.js' 
           ] 
          } 
         ]); 
        }] 
       } 
      }) 

내가 각 링크, 표준 메뉴 물건 체인에 여러 가지 다른 .state()의가 있습니다. 그러나 링크 중 하나에는 하위 메뉴가 있으며, 특히 개별 파일에 대한 구성을 분리하고 싶습니다. app/componenets/links/links.routes.js. 코드 :

angular.module('app.links',[]) 
    .config(['$stateProvider',function($stateProvider){ 
     $stateProvider 
      .state('index.links.first',{ 
       url:'links/first', 
       views:{ 
        '[email protected]':{ 
         templateUrl:'app/components/links/first/first.view.html', 
         controller:'FirstLinkController as firstLinkCtrl' 
        } 
       }, 
       resolve:{ 
        loadFirstLinkModules:['$ocLazyLoad', function($ocLazyLoad) { 
         return $ocLazyLoad.load([ 
          { 
           name:'app.home', 
           serie:true, 
           files: [ 
            'app/components/links/first/first.module.js', 
            'app/components/links/first/first.service.js', 
            'app/components/links/first/first.controller.js' 
           ] 
          } 
         ]); 
        }] 
       } 
      }); 
    }]); 

여기 너무 미쳤습니다. 문제는이 .config()이 전혀 실행되지 않는다는 것입니다. 나는 그저 시험을 위해 console.log()을 맨 위에 놓았다. 파일 자체가로드되는 경우에도 모듈에 대한 .config() 기능이 실행되지 않습니다.

UI Router documentation을 기반으로 라우팅을 설정하기 위해 여러 모듈을 사용할 수 있어야합니다. 내가 파일을로드하는 게으른가? 제가 누락 된 것이 있습니까? 도와주세요!!

그런데, 왜 내가이 상태들을 분리하고 싶은지 궁금해하는 사람이 있다면, 그것은 스케일링을위한 것이기 때문입니다 ... 이것은 단지 10,000 개의 상태를 가진 사이트에 사용될 것이라고 가정합니다. 이것은 그 주들에 대한 라우팅이 더 좋습니다. 그 맥락에서 당신이 다른 방법론을 추천한다면, 나는 모든 귀입니다! 나는 Angular에서 꽤 새로운데, 모든 지혜를 환영합니다.

답변

0

우선, 경로를 여러 파일로 분리하는 데는 아무런 문제가 없습니다. 나는 모든 각도 애플 리케이션에서 성공적으로 그렇게한다. 내 각도 스타터 앱을 여기에서보십시오 : https://github.com/RyanWarner/angular-sprout.

아직 댓글을 달 수는 없지만 links 모듈이 앱 모듈에 종속되어 있어야한다는 것을 기억하고 계십니까? UI를 라우터 문서에서

예 : main.page1 당신이 links 전화 모듈에 해당

angular.module('main', ['main.page1']); 

.

+0

시도해 보도록하겠습니다 ... 내가하고있는 게으른로드 때문에이 작업을 수행하지 않았습니다. 나는 모든 파일에 대해'