2015-04-28 57 views
0

我有父子导航路由问题。AngularJS ui路由器子视图到父视图

我的路由配置如下:

templateApp.config(['$stateProvider', '$urlRouterProvider', function($stateProvider, $urlRouterProvider) { 

//For Default Redirect 
$urlRouterProvider.otherwise("/"); 

//For set up the states 
$stateProvider 
    .state('list', { 
     url: "/", 
     cache:false, 
     templateUrl: "/Templates/TemplateList", 
     controller: "templateListController" 
    }) 
    .state('template', { 
     url: "/template/:templateId", 
     cache: false, 
     templateUrl: "/Templates/MainTemplate", 
     controller: "mainTemplateController" 
    }) 
    .state('template.detail', { 
     url: "/detail/:templateId", 
     cache: false, 
     templateUrl: "/Templates/TemplateDetails", 
     controller: "templateDetailController" 
    }) 
    .state('template.section', { 
     url: "/section/:paperTemplateId", 
     cache: false, 
     templateUrl: "/Templates/TemplateSection", 
     controller: "templateSectionController" 
    }) 
    .state('template.summary', { 
     url: "/summary/:templateId", 
     cache: false, 
     templateUrl: "/Templates/TemplateSummary", 
     controller: "templateSummaryController" 
    }); 

}]); 

,我想导航从名单国'template状态。我使用下面的代码,它完美地工作。

$state.go('template', { templateId: examTemplate.Id }); 

当我想导航到'template.detail'状态时,我使用了下面的代码,它工作的很完美。

$state.go('template.detail', { templateId: $scope.templateId }); 

现在从孩子“template.detail”我想导航到“模板”状态。所以我使用了下面的代码。

 $state.go('template', { templateId: $scope.templateId }); 

但是这种路由不起作用。当我将孩子路由到父母时,能否请某人向我展示该代码的问题。

感谢, Erandika

回答

1

你的答案就在ui-router doc。它说:

  • $ state.go( 'contact.detail') - 将转到contact.detail状态

  • $ state.go( '^') - 会去父母状态

  • $ state.go( '^兄弟') - 将去兄弟国家

  • $ state.go( 'child.grandchild。') - 将去孙子状态

因此,使用“^”符号转到当前状态的父状态。

+0

嗨manashi,其实我已经试图按照文档。但它不起作用。 –

+0

@Erandika Sandaruwan你可以粘贴控制器代码,试图将状态更改为其父代? –