簡體   English   中英

在ui路由器中設置默認的嵌套狀態

[英]Set default nested state in ui-router

我在ui路由器上有兩個級別的嵌套狀態,並且無法為某些視圖設置默認的嵌套狀態。

當狀態cars.detail處於活動狀態時,我需要加載狀態cars.detail.supply.list ,而無需更改當前URL。

我希望在不單擊“ List supplies按鈕的情況下顯示supplies列表。

我想念什么?

完整代碼: https //plnkr.co/edit/DqwhaDXh3biMbq9PLCV3?p = preview

ui狀態:

.state('cars.detail', {
    parent: 'cars',
    url: '/edit/:id',
    views: {
        'content@index': {
            templateUrl: 'cars.detail.html',
            controller: 'CarDetailController'
        },
        'supplies': {
            templateUrl: 'cars.supply.html',
            controller: 'CarDetailController'
        }
    }
})

.state('cars.detail.supply', {
    url: '',
    parent: 'cars.detail',
    abstract: true,
    //'default': '.list',
    views: {
        'supplies@cars.detail': {
            templateUrl: 'cars.supply.html',
            //controller: 'SupplyListController'
        }
    }
})
.state('cars.detail.supply.list', {
    parent: 'cars.detail.supply',
    url: '',
    views: {
        '@cars.detail.supply': {
            templateUrl: 'cars.supply.list.html',
            controller: 'SupplyListController'
        }
    }
})
.state('cars.detail.supply.add', {
    parent: 'cars.detail.supply',
    url: '/add-supply',
    views: {
        '@cars.detail.supply': {
            templateUrl: 'cars.supply.add.html',
            controller: 'AddSupplyController'
        }
    }    
})

風景:

<div>
    ...

    <h4 ng-if="car.id">
        Supplies

        <a class="btn btn-default btn-sm pull-right" ui-sref="cars.detail.supply.add({ carId: car.id })">
            <i class="glyphicon glyphicon-plus"></i> Add supply
        </a>

        <a class="btn btn-default btn-sm pull-right" ui-sref="cars.detail.supply.list({ carId: car.id })">
            <i class="glyphicon glyphicon-plus"></i> List supplies
        </a>
    </h4>
    <div ui-view="supplies" class="">
    </div>
</div>

我試過了:

為了使其正常工作,您必須區分cars.detailcars.detail.supply.list的URL。 因此,第一步是給cars.detail.supply.list一個URL:

.state('cars.detail.supply.list', {
    parent: 'cars.detail.supply',
    url: '/list',
    templateUrl: 'cars.supply.list.html',
    controller: 'SupplyListController'
})

區分狀態網址后,您需要通過將汽車列表中繼器中的鏈接更新為來轉換到列表狀態

ui-sref="cars.detail.supply.list(...)"

要么

通過在app.js指示從details狀態到詳細信息list狀態的重定向:

$urlRouterProvider.when('/dashboard/cars/edit/{id}', '/dashboard/cars/edit/{id}/list');

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM