我想配置我的路由以便能够在其URL之后接受任何整数。 例如,
/product/id/1242
API工厂将访问此整数作为API要查询的值。
我已经阅读了关于设置路线的文档,但是无法做到这一点。如果我输入一个带整数的URL,它只会重定向到登录页面。
angular.module('myapp123.routes', [])
.config(['$stateProvider', '$urlRouterProvider',
function($stateProvider, $urlRouterProvider) {
$urlRouterProvider.otherwise("/login");
//$location.path('/product').search('queryStringKey', value).search( ...);
$stateProvider
.state('login', {
url: '/login',
views: {
'menuContent': {
templateUrl: 'app/core/login/login.html'
}
},
controller: function ($ionicHistory, $scope) {
console.log('Clearing history!');
$ionicHistory.nextViewOptions({
historyRoot: true,
disableBack: true
});
}
})
.state('product', {
url: '/product',
when:('/product/id/product_id')
views: {
'menuContent': {
templateUrl: 'app/components/product/product.html'
}
}
})
答案 0 :(得分:0)
根据the docs这应该可以解决问题。 [0-9]将产品ID限制为数字。
.state('product', {
url: '/product/id/{productId:[0-9]}',
views: {
'menuContent': {
templateUrl: 'app/components/product/product.html'
}
}
答案 1 :(得分:0)
谢谢 - 由于某种原因无法使您的版本正常运行。
我找到了一个可行的解决方法:
.state('product', {
url: '/product/id/:product_id',
templateUrl: 'app/components/product/product.html',
controller: function($scope, $stateParams) {
$scope.product_id = $stateParams.product_id;
}
})