0

我在子到父导航时遇到路由问题。

我的路由配置如下:

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

但是这个路由不起作用。当我将孩子路由到父母时,请有人告诉我该代码的问题。

谢谢, 埃兰蒂卡

4

1 回答 1

1

Your answer lies in the ui-router doc. It says :

  • $state.go('contact.detail') - will go to the contact.detail state

  • $state.go('^') - will go to a parent state

  • $state.go('^.sibling') - will go to a sibling state

  • $state.go('.child.grandchild') - will go to grandchild state

Hence, use "^" sign to go to parent state of the current state.

于 2015-04-28T09:30:07.787 回答