我正在使用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”有效。 有人可以帮我解决这个问题。 预先感谢。
答案 0 :(得分:1)
您可以像这样在路径中添加参数:
.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;