2014-11-26 9 views
1

각도를 이해하는 데 도움이되는 앱 템플릿을 구입했으며 $stateProvider을보고 있습니다. 현재, 다음과 같습니다 :각도 상태 공급자 이해

$urlRouterProvider 
    .otherwise('/app/dashboard-v1'); 
$stateProvider 
    .state('app', { 
     abstract: true, 
     url: '/app', 
     templateUrl: 'tpl/app.html' 
    }) 
    .state('app.dashboard-v1', { 
     url: '/dashboard-v1', 
     templateUrl: 'tpl/app_dashboard_v1.html', 
     resolve: { 
      deps: ['$ocLazyLoad', 
       function($ocLazyLoad){ 
        return $ocLazyLoad.load(['js/controllers/chart.js']); 
      }] 
     } 
    }) 

따라서 /app/dashboard-v1으로 이동하면 대시 보드보기가 제공됩니다. 나는 그것이 정확히 같은 줄 것으로 예상 -

$urlRouterProvider 
    .otherwise('/dashboard-v1'); 
$stateProvider 
    .state('app', { 
     abstract: true, 
     url: '/', 
     templateUrl: 'tpl/app.html' 
    }) 
    .state('app.dashboard-v1', { 
     url: '/dashboard-v1', 
     templateUrl: 'tpl/app_dashboard_v1.html', 
     resolve: { 
      deps: ['$ocLazyLoad', 
       function($ocLazyLoad){ 
        return $ocLazyLoad.load(['js/controllers/chart.js']); 
      }] 
     } 
    }) 

을하지만 예상대로이 템플릿을로드하지 않습니다 위해 URL에 /app 접두사를 제거하기 위해, 나는 app 상태에서 URL에서 app을 제거 결과는 app/dashboard-v1 대신 /dashboard-v1이됩니다. 내가 도대체 ​​뭘 잘못하고있는 겁니까?

답변

3

경로 제공 업체에/dashboard-v1로 이동한다고 말하면서 해당 URL과 일치하는 상태가 더 이상 존재하지 않습니다. 이전과 같이 기능을 유지하려면 상태 제공자의 URL을/dashboard-v1로 다시 변경해야합니다. 당신이 달성하려고 노력하고있는 것에 대해 더 자세하게 설명 할 수 있다면 아마도 제 대답을 향상시킬 수있을 것입니다.

+0

답장을 보내 주셔서 감사합니다. 부모 상태 ("app") URL을 변경하면 'app/dashboard-v1'이 아니라'/ dashboard-v1'을 통해 대시 보드에 액세스하는 것으로되어 있다고 생각했습니다. – babbaggeii

+0

이제 막 알아 냈습니다. '앱'상태의 URL은''/''이 아니라'' ''이어야합니다. – babbaggeii