AngularJS : 如何在路由中传递多个参数
AngularJS : How to pas multiple parameters in route
我正在使用 AngularJs 构建应用程序。
我突然陷入了一个路由,我想在路由中发送多个数据,但它没有唤醒。
她是我的路线:
.state('/filter-list', {
url: "/search/india/:data?",
views : {
"" : {
templateUrl:"/filter/filter-list.html",
controller: 'filterListCtrl',
controllerAs:'vm',
authenticated: true
}
},
resolve: {
loadMyCtrl: ['$ocLazyLoad', function($ocLazyLoad) {
return $ocLazyLoad.load('/filter-list'); // Resolve promise and load before view
}]
}
})
我想发送这样的数据:
/search/india/state/city/hotel-name
但是如果我尝试发送它,它会被重定向到我的应用程序主页。
只有“/search/india/new-delhi”在工作。
有人可以帮我解决这个问题吗?
提前致谢。
您可以像这样在您的路线中添加参数:
.state('/filter-list', {
url: "/search/india",
params: {
state: '',
city: '',
hotel-name: ''
}
...
}
并且在您的控制器中,您可以使用这样的 $state.go()
方法:
$state.go("/filter-list", {
state: 'your-chosen-state',
city: 'your-chosen-city',
hotel-name: 'your-chosen-hotel'
});
在您的控制器中,您可以从以下位置捕获参数:
const state = $stateParams.state;
const city = $stateParams.city;
const hotel = $stateParams.hotel-name;
我正在使用 AngularJs 构建应用程序。 我突然陷入了一个路由,我想在路由中发送多个数据,但它没有唤醒。 她是我的路线:
.state('/filter-list', {
url: "/search/india/:data?",
views : {
"" : {
templateUrl:"/filter/filter-list.html",
controller: 'filterListCtrl',
controllerAs:'vm',
authenticated: true
}
},
resolve: {
loadMyCtrl: ['$ocLazyLoad', function($ocLazyLoad) {
return $ocLazyLoad.load('/filter-list'); // Resolve promise and load before view
}]
}
})
我想发送这样的数据: /search/india/state/city/hotel-name
但是如果我尝试发送它,它会被重定向到我的应用程序主页。 只有“/search/india/new-delhi”在工作。 有人可以帮我解决这个问题吗? 提前致谢。
您可以像这样在您的路线中添加参数:
.state('/filter-list', {
url: "/search/india",
params: {
state: '',
city: '',
hotel-name: ''
}
...
}
并且在您的控制器中,您可以使用这样的 $state.go()
方法:
$state.go("/filter-list", {
state: 'your-chosen-state',
city: 'your-chosen-city',
hotel-name: 'your-chosen-hotel'
});
在您的控制器中,您可以从以下位置捕获参数:
const state = $stateParams.state;
const city = $stateParams.city;
const hotel = $stateParams.hotel-name;