我有一个列出所有商店的页面。 (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
}