模拟别名为UI路由器



我有许多页面/URL使用相同的父状态/模板:

/orders/list
/orders/create
/products/list
/products/create

现在,我有2个虚拟状态/路线(/产品和/订单)仅在那里创建其他替代的父状态 - a)我不和b)我正在复制它们以实现所需的网址。

.state('orders', {
      url: "/orders",
      templateUrl: "/partials/common/main"
    })
    .state('products', {
      url: "/products",
      templateUrl: "/partials/common/main"
    })
    .state('orders.list', {
      url: "/view",
      templateUrl: "/partials/orders/view"
    })
    .state('orders.create', {
      url: "/create",
      templateUrl: "/partials/orders/edit"
    })
    .state('products.list', {
      url: "/view",
      templateUrl: "/partials/products/view"
    })
    .state('products.create', {
      url: "/create",
      templateUrl: "/partials/products/edit"
    })

我可以使用一些功能来清理它吗?至少只有一个主要状态 - 我四处寻找别名,但找不到任何东西。

诸如:

之类的东西
.state('main', {
  url: "/[orders|products]",  // some kind of url match
  templateUrl: "/partials/common/main"
})

请注意,/partials/common/main包含所有订单/...和products/...使用的内部UI-View,并且此视图在上述2个主要路线中是相同的(实际上我已经有〜同一"占位符"路线的10个)

您可以设置未使用的状态 abstract: true,这意味着它们只是充当假人。但是,虚拟路线需要一个诸如<div ui-view=""></div>之类的模板或沿这些行的其他模板,以便孩子模板知道在哪里加载。

如果您没有使用这些抽象路由的控制器逻辑,则可以随时将它们遗漏,只需创建孩子路由orders.listorders.create即可而无需实际创建orders状态即可。取决于您的要求。

相关内容

  • 没有找到相关文章

最新更新