无法使用带有查询参数的AngularJS 1.x中的UI路由器
我在AngularJS 1.5.9中使用UI路由器,并尝试处理带有查询参数的路由“/reregister” 我尝试在外部(通过链接)调用此URL表单: 但是每次URL被重定向到 我还想知道为什么会有这样一个问题!在url中的#签名后添加签名 为此,我有以下$stateProviderConfig:无法使用带有查询参数的AngularJS 1.x中的UI路由器,angularjs,angular-ui-router,Angularjs,Angular Ui Router,我在AngularJS 1.5.9中使用UI路由器,并尝试处理带有查询参数的路由“/reregister” 我尝试在外部(通过链接)调用此URL表单: 但是每次URL被重定向到 我还想知道为什么会有这样一个问题!在url中的#签名后添加签名 为此,我有以下$stateProviderConfig: app.config(function($stateProvider, $urlRouterProvider, $locationProvider) { $stateProvide
app.config(function($stateProvider, $urlRouterProvider, $locationProvider) {
$stateProvider
// HOME STATES AND NESTED VIEWS ========================================
.state('home', {
url: '/',
templateUrl: 'views/home.html'
})
.state('register-slack', {
url: '/register-slack',
templateUrl: 'views/register-slack.html',
controller: 'registerSlackCtrl'
})
.state('reregister-slack', {
url: '/reregister-slack?id',
params: {
id: { value : ""},
},
templateUrl: 'views/register-slack.html',
controller: 'registerSlackCtrl'
})
.state('confirm-registration', {
url: '/confirmation',
templateUrl: 'views/show-confirmation.html'
})
.state('show-skills', {
url: '/about-skills',
templateUrl: 'views/show-skills.html'
});
$urlRouterProvider.otherwise('/');
$locationProvider.html5Mode(false);
});
首先,URL应该从 到 请注意
&
和?
。在URL中,第一个参数应始终以?
开头,随后的参数应以&
开头,如/contacts?myParam1=value1&myParam2=wowcool
其次,您使用的是reReReigster
,如果您想优雅地捕获值,可能需要使用以下状态定义单独处理:
.state('reregister-slack', {
url: '/reregister-slack?rereigster',
params: {
id: { value : ""},
},
templateUrl: 'views/register-slack.html',
controller: 'registerSlackCtrl'
})
或
您可能希望将URL更改为
因为您已经有了?id
的路由
更新:关于处理#的更多信息!格式化哈希前缀
$locationProvider.html5Mode(false);
$locationProvider.hashPrefix("!");
首先,URL应该从 到 请注意
&
和?
。在URL中,第一个参数应始终以?
开头,随后的参数应以&
开头,如/contacts?myParam1=value1&myParam2=wowcool
其次,您使用的是reReReigster
,如果您想优雅地捕获值,可能需要使用以下状态定义单独处理:
.state('reregister-slack', {
url: '/reregister-slack?rereigster',
params: {
id: { value : ""},
},
templateUrl: 'views/register-slack.html',
controller: 'registerSlackCtrl'
})
或
您可能希望将URL更改为
因为您已经有了?id
的路由
更新:关于处理#的更多信息!格式化哈希前缀
$locationProvider.html5Mode(false);
$locationProvider.hashPrefix("!");
非常感谢。为什么我有一个#!而不是#作为路线标志?我以前从未遇到过这种情况。如果没有匹配项,它将转到其他
$urlRouterProvider。否则(“/”)
看到的&
将它弄糊涂。我使用了链接,app.js中的状态现在是:。state('reregister-slack'),{url:'/reregister slack?id',templateUrl:'views/reregister slack.html',controller:'registerSlackCtrl'})我无法摆脱这个奇怪的#!符号,因为它仍在显示。你能删除guruservice.herokuapp.com/#!/reregister slack?id=T2KLC5H3QAlso中奇怪的!
字符吗?你可以配置$locationProvider并设置locationProvider.hashPrefixThank!谢谢!为什么我有一个#!而不是#作为路由符号?我从来没有这样的因此,当没有匹配项时,它将转到另一个$urlRouterProvider。另一个(“/”)
看到的&
将它弄糊涂。我使用了链接,app.js中的状态现在是:。状态('reregister-slack',{url:'/reregister slack?id',templateUrl:'views/reregister slack.html',controller:'registerSlackCtrl'})我无法删除这个奇怪的#!符号,因为它仍在显示。能否删除guruservice.herokuapp.com/#!/reregister slack?id=T2KLC5H3QAlso中奇怪的!
字符,以便配置$locationProvider并设置locationProvider.hashPrefix