Angular ui-router在path参数之后扩展url

时间:2015-12-11 14:20:36

标签: javascript angularjs routes angular-bootstrap

ui-router是否可以使用这种类型的路由?

父母州---> /存储/:ID 儿童状态---> /保存/:ID /吃

Bellow是我的代码段。为什么我尝试这样做,页面被重定向到路由。

 .state('frouits.banana.saved', {
        url: '/saved/:id',
        views: {
          parameters: {
            templateUrl: 'banana.html'
          }
        }
      })state('frouits.banana.saved.eat', {
        url: '/saved/:id/eat',
        views: {
          parameters: {
            templateUrl: 'banana.html'
          }
        }
      })

1 个答案:

答案 0 :(得分:2)

默认情况下,会附加UI-Router中的嵌套路由。由于frouits.banana.saved.eatfrouits.banana.saved的嵌套视图,因此会继承其网址,这意味着您的路由已解析为/saved/:id/saved/:id/eat

因此,您需要做的就是从第二条路线的网址中删除/saved/:id部分。

.state('frouits.banana.saved.eat', {
    url: '/eat', // <--
    views: {
      parameters: {
        templateUrl: 'banana.html'
      }
    }
 });

您可以使初始示例工作的另一种方法是通过在路线(url: '^/saved/:id/eat')之前添加插入符号来声明您的路线为绝对路径。

有关嵌套路由如何工作的更多信息,请refer to the docs