【问题标题】:Match angularjs router pattern '?ref=value'匹配 angularjs 路由器模式 '?ref=value'
【发布时间】:2023-03-17 10:08:01
【问题描述】:

我正在尝试匹配路由器中的example.com/?ref=thing。

在文档 (https://github.com/angular-ui/ui-router/wiki/URL-Routing) 中关闭此示例:

url: "/contacts?myParam"
// will match to url of "/contacts?myParam=value"

我试过了:

url: "/?ref"

但这不起作用(即它不会将我引导到那条路线)

我也试过:"/ref/:value",但没有。另外:/?

我在文档中只能找到以 filesuser 为基数的路由示例。

【问题讨论】:

  • 您遇到错误了吗?
  • @MukundGandlur,不,它只是不路由它
  • 你可以添加一个 plunkr 吗?看看这是否有帮助stackoverflow.com/questions/36473901/…
  • 如果您可以在这里添加更多代码。就像控制器和状态配置一样,它可能会有所帮助。

标签: angularjs angular-ui-router


【解决方案1】:

例如,如果您的 $stateProvider 中有这个:

.state('listview', {
  url: '/listview?:id', // Output /listview?id=1234
  templateUrl: 'templates/listview.html',
  controller: 'listviewController'
});

然后,您可以在其中一个控制器中调用以下函数,它将转到具有给定 ID 的列表视图:

var url_id = 1234;
$state.go('listview', {id: url_id});

你也可以这样做:

.state('listview', {
  url: '/listview/:id', // Output /listview/1234
  templateUrl: 'templates/listview.html',
  controller: 'listviewController'
});

这也可以:

.state('listview', {
  url: '/listview/?:id', // Output /listview/?id=1234
  templateUrl: 'templates/listview.html',
  controller: 'listviewController'
});

希望这能给你正确的方向。

【讨论】:

  • 问题是,/?之前我什么都没有,所以没有/listview
  • 好吧,这不是 Angular 的工作原理,我很抱歉。您不能在州网址中添加一个字母吗?例如/a?:id
  • 也许你可以看看 AngularJS 抽象状态:github.com/angular-ui/ui-router/wiki/…
猜你喜欢
  • 1970-01-01
  • 2017-05-06
  • 2018-04-18
  • 1970-01-01
  • 2013-07-25
  • 2018-10-04
  • 1970-01-01
  • 2018-08-07
  • 1970-01-01
相关资源
最近更新 更多