在UI路由器中从子状态转换为父状态时更新url

画摩尔

我有一个运行UI-router(0.2.13)的Angular(1.2.1)应用程序,并且具有以下状态结构:

$stateProvider.state('home', {
        template: "<div home></div>",
        url: '/'
    }).state('home.geo', { 
        url:'/geo/{geo}' 
}

从父级到子级或在具有不同{geo}参数值的子级之间过渡按预期进行。从子级到父级的过渡-即模板和$ state.current的内容按预期更改-但URL在浏览器中不会更新。

举个简单的例子:我在/geo/california,然后用单击一个按钮ui-sref='home'我确认href='#/'按钮上已放置了正确的字符,单击它会使$ state转换回原始状态,但/geo/california仍保留在我的地址栏中。

我在这里想念什么?

更新为@UlukBiy的评论:不,home其模板中没有ui视图。ui-view位于其父级的模板中:总体结构为:

<body> 
   <div app-nav></div>
   <div ui-view></div>
</body>

因此,home指令将插入到ui-view中,但是它不包含自己的ui-view。那是我的问题吗?我是UI路由器的新手,并假设在发布此书时,对于状态与指令的作用存在一些低级的误解。如果是这样,请帮助我进行更正。

拉迪姆·科勒

这种情况下应该工作。一个有效的示例 (单击右上角的蓝色按钮在单独的窗口中运行示例,显示地址栏)

我更新了您的状态def:

$stateProvider
  .state('home', {
      url: "/",
      template: 'Home view <hr /> Geo view: <div ui-view></div>',
  })
  .state('home.geo', {
      url:'^/geo/{geo}',
      templateUrl: 'tpl.html',
  })

所有这些链接都可以正常工作:

<a href="#/home">
<a href="#/geo/california">
<a href="#/geo/czechia">

<a ui-sref="home">
<a ui-sref="home.geo({geo:'california'})">
<a ui-sref="home.geo({geo:'czech'})">

因此,这里最重要的更改是对于子状态,我们应该使用以下网址:

url:'^/geo/{geo}',

而不是url:'/geo/{geo}'检查文档:

绝对路线(^)

如果您想进行绝对的url匹配,则需要在url字符串前面加上特殊符号'^'

这里检查工作示例

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

ui路由器中嵌套状态的URL路由

在抽象状态,UI路由器,angularjs的url中的stateParams

UI路由器:导航到抽象父状态时重定向到子状态

在ui路由器中通过嵌套状态行走而无需重新加载父状态

在UI路由器状态更改时更新父作用域

UI路由器的父状态,子状态控制器

UI路由器更改状态而不更改url

不带URL的有角UI路由器初始状态

滚动时的角度UI路由器状态

在AngularJS ui路由器中,状态已更改,URL已更改,但模板URL未更改

如何在ui路由器状态转换之间调出“进行中”的加载栏?

在Angular ui路由器中,嵌套状态url发生更改,但模板未加载

AngularJS / UI路由器-状态URL / TemplateURL中的语言环境

等待 vuejs 路由器中的状态更新 beforeEnter

从子组件更新状态时检查父安装状态

AngularJS UI路由器状态更改

UI路由器状态未加载

角度ui路由器状态问题

AngularUI路由器:在调用子状态时将url参数传递给“抽象”状态

UI路由器导航到父状态会更改查询字符串参数

角度UI路由器-具有空网址的抽象父状态

当子组件位于路由器出口Angular中时,从子组件调用父组件函数

AngularJS ui路由器,如何获取抽象partent状态的resolve对象中的目标状态的名称?

我想使用Angular UI路由器突出显示抽象的父状态并链接到子具体状态

当子节点处于活动状态时,使Angular路由器成为父级

在AngularUI路由器中保留父状态

UI路由器切换回原始状态(URL:“”)不会更改URL

ui路由器更改状态时,角度控制器作用域不破坏变量

在ui路由器的状态转换之间淡入淡出动画