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

Angularjs 在UI路由器中从子状态转换到父状态时更新url,angularjs,angular-ui-router,Angularjs,Angular Ui Router,我有一个运行UI路由器(0.2.13)的Angular(1.2.1)应用程序,状态结构如下: $stateProvider.state('home', { template: "<div home></div>", url: '/' }).state('home.geo', { url:'/geo/{geo}' } 因此home指令被插入到ui视图中,但它不包含自己的ui视图。这是我的问题吗?我是UI路由器的新

我有一个运行UI路由器(0.2.13)的Angular(1.2.1)应用程序,状态结构如下:

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

因此home指令被插入到ui视图中,但它不包含自己的ui视图。这是我的问题吗?我是UI路由器的新手,在我发布这篇文章时,我假设对状态和指令的作用有一些低级的误解。如果是的话,请帮我纠正一下

这个场景应该是可行的。有(单击右上方的蓝色按钮,在单独的窗口中运行示例,显示地址栏)

我更新了一点你的状态定义:

$stateProvider
  .state('home', {
      url: "/",
      template: 'Home view <hr /> Geo view: <div ui-view></div>',
  })
  .state('home.geo', {
      url:'^/geo/{geo}',
      templateUrl: 'tpl.html',
  })
而不是
url:'/geo/{geo}'
。检查文档:

如果要进行绝对url匹配,则需要在url字符串前面加一个特殊符号
“^”


检查工作示例

在“主”状态的模板中是否有“ui视图”?我测试了类似的情况,它正在按预期工作。我想你需要提供更多的细节。不,不-请参阅edit@UlukBiy
$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}',