如何使用uiRouter传递多个参数但只显示一个?

Posted

技术标签:

【中文标题】如何使用uiRouter传递多个参数但只显示一个?【英文标题】:How to pass multiple parameters but show only one using uiRouter? 【发布时间】:2017-05-10 21:13:24 【问题描述】:

问题:我想在我的网址中传递参数,例如/title/id,标题是内容的标题,id是mongooDB ID 在登陆到下一个状态之前已解决(通过从服务器获取)。我想隐藏 id 并且只想在 url 中显示 title

预期输出: /xyzTitle

电流输出 /xyzTitle/dasd123123askdasdas

我也想传递ID,但我不想显示它。

【问题讨论】:

【参考方案1】:

状态示例:

.state('foo', 
  url: '/xyzTitle/title',
  params: 
    id: null
  
)

然后你可以像这样使用$state.go()(例如从一个状态移动到另一个状态):

$state.go('foo',  title: 'some title', id: 99 );

或者您可以使用ui-sref 在模板中从一种状态移动到另一种状态:

<a ui-sref="foo( title: 'some title', id: 99 )">to foo</a>

无论哪种方式,您都不必在 url 中包含参数。我在顶部给出的状态示例在您请求的 url 中具有标题,但也允许您传递 id 参数。看看URL Routing 的 ui-router 文档,它可能会更清楚地说明这个棘手的问题。

【讨论】:

以上是关于如何使用uiRouter传递多个参数但只显示一个?的主要内容,如果未能解决你的问题,请参考以下文章

无法解析UIRouter的所有参数:(?,?)

AngularJS 组件在 UiRouter 路由更改时监视和显示通知

错误:宏“断言”传递了 2 个参数,但只需要 1 个

当UiRouter路由改变时观察和显示通知的AngularJS组件

宏传递了 2 个参数,但只需要 1 个

我的 opengl 代码应该显示多个立方体,但只显示一个正方形