AngularJS ui-router子视图到父视图

时间:2015-04-28 09:17:10

标签: angularjs angular-ui-router-extras angular-ui-router

我遇到了子到父导航的路由问题。

我的路由配置如下:

 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"
    });

}]);

我想从'list state'导航到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 个答案:

答案 0 :(得分:1)

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

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

  • $ state.go(' ^') - 将进入父州

  • $ state.go(' ^ .sibling') - 将进入兄弟姐妹州

  • $ state.go(' .child.grandchild') - 将去孙子州

因此,使用" ^"签到当前状态的父状态。