当前位置: 首页 > 面试题库 >

AngularJS UI-Router:使用参数获取状态的绝对URL

邢承弼
2023-03-14
问题内容

我希望能够在不更改状态的情况下更改地址的URL,以防止重新呈现。从我的搜索来看,ui- router当前没有提供此功能,但从$location.path丑角提供了。

因此,自然而然地,我想使用$state.get(stateName)该州的URL,这样就不必手动键入URL。

我有两个问题:

  1. $state.get(stateName)仅返回相对路径。如何获得绝对路径?
  2. 它还返回状态的定义,参数未定义。如何获得带有参数的URL?

举例来说,如果我有一个名为状态user.home.viewuser.home,我有我的状态定义为

'user': {
     abstract: true,
     url: '^/users/'
},
'user.home': {
     url: ''
},
'user.home.view': {
     url: ':id/'
}

因此,现在$state.get(user.home.view).url返回:id/。如何获得完整的URL(即/users/5/)?


问题答案:

您应该使用$state.href()

  1. 要获取绝对URL,可以使用:

$state.href('user.home.view', {}, {absolute: true});

  1. 为了获得带有参数的URL,您需要将其添加为第二个参数


 类似资料:
  • 本文向大家介绍React-Router怎么获取URL的参数?相关面试题,主要包含被问及React-Router怎么获取URL的参数?时的应答技巧和注意事项,需要的朋友参考一下 在之前的版本中,可以通过 this.props.location.query.bar 进行获取 在 v4 中,通过 this.props.location.search 获取,不过需要进行处理

  • 问题内容: 我正在使用ui-router来表示AngularJS应用程序中的状态。在其中,我想更改状态而不更改URL(基本上是“详细视图”已更新,但这不会影响URL)。 我使用的显示细节,但如果我指定像一个URL这仅适用于我。 在我看来,当前状态仅通过URL定义。 问题答案: 感谢您的回答,它确实对正确的方向有所帮助,但是我想添加更完整的描述。 在我的特定问题中,有一个复杂的因素,因为我需要向其注

  • 问题内容: 这可能很简单,但是我在文档中找不到任何内容,因此使用谷歌搜索没有帮助。我正在尝试定义一个状态,在该状态下,我需要在服务器上单击以提取所需数据的URL取决于状态URL参数。简而言之,类似于: 上面的方法不起作用。我尝试注入以获取所需的参数,但是没有运气。什么是正确的方法? 问题答案: 您关系密切。如果使用ui-router,请改用。该代码对我有用:

  • 但是控制台显示一个错误: 未捕获的 DOMException:无法在 “History” 上执行 'pushState':无法克隆 Symbol(react.element)。 这是什么意思?对此我能做些什么?

  • 问题内容: 考虑从ui-router文档获取的以下状态: 以及状态“ state1”的“ partials / state1.html”控制器: 是否有任何内置功能可从控制器内部或模板内部确定控制器/模板与哪个状态关联? 例如: 而且,如果没有内置解决方案,您将如何“装饰” $ state或$ stateParams以包含此信息? 我想出的唯一解决方案是使用$ state.get(),然后使用控制

  • 问题内容: 说我有一个 现在,我需要单击它的状态。我的意思是我需要知道是否单击了它。 问题答案: 您还可以使用itemListener的itemStateChanged方法,如下所示: 并且您想知道后者使用方法的状态