ui-router urls中的查询字符串参数?

时间:2013-12-09 01:43:50

标签: angularjs angular-ui-router

我有这些状态:

.state('quotes', {
  abstract: true,
  url: '/quotes'
})
.state('quotes.new', {
  url: '/new',
  templateUrl: 'views/quote-form.html',
  controller: 'QuoteFormCtrl'
})
.state('quotes.new.customer', {
  url: '?customer',
  templateUrl: 'views/quote-form.html',
  controller: 'QuoteFormCtrl'
})

当我点击网址/quotes/new?customer=123时,客户查询字符串被剥离,我处于quotes.new状态。

对我来说最有意义的只是在params: ['customer']状态定义中添加quotes.new,但这会让我错误地抱怨我同时指定了url和params。

我很欣赏任何我想要做的例子。

1 个答案:

答案 0 :(得分:46)

您应该修改url字符串属性以包含您的customer查询参数,如下所示:

.state('quotes.new', {
  url: '/new?customer',
  templateUrl: 'views/quote-form.html',
  controller: 'QuoteFormCtrl'
});

可以使用&

分隔多个参数
.state('mystate', {
  url: '/myState?paramOne&paramTwo
  //...
});

请参阅the docs