StateProvider嵌套视图并自动更改动态URL

时间:2018-12-07 09:50:06

标签: javascript angularjs

我有一个列出所有商店的页面。 (url:“ / shops”)可以在该url上直接查看它,也可以按嵌套视图的类别(url:“ / shops / categoryId”)进行查看。如果url为(“ / shops”),则应显示所有商店。

第二,如果url为“ / shops / 123”,则应根据类别名称自动更改为“ / shops / 123 / abc”;如果url为“ / shops / 123 / xyz”,则应更正再次为“ / shops / 123 / abc”。

我试图做的就像在这里stackoverflow一样。您知道url逻辑是: “ stackoverflow.com/questions/QUESTION_ID/DESCRIPTION”

即使您更改了网址的Description部分或删除了所有说明,它也会自动更改地址栏上显示的所有网址。

angular.module('app')
    .component('shops', {
        templateUrl: 'app/shops/shops.template.html',
        controller: ['$scope','$stateParams', ShopsController]
    })
    .config(['$stateProvider', function ($stateProvider) {
        $stateProvider
            .state('shops', {
                url: '/shops',
                template: '<shops></shops>'
            })
            .state('shops.category', {
                url: '/:categoryId',
                template: '<shops></shops>'
            })
            .state('shops.category.categoryName', {
                url: '/:categoryName',
                template: '<shops></shops>'
            });
    }]);

function ShopsController($scope, $stateParams) {
    if ($stateParams.categoryId) {
        $scope.categoryId = $stateParams.categoryId;
    } else {
        $scope.categoryId = 'all';
    }

   //TODO: write a function to return categoryName by categoryId
}

0 个答案:

没有答案