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;