Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript UI路由器的模拟别名状态_Javascript_Angularjs_Angular Ui Router - Fatal编程技术网

Javascript UI路由器的模拟别名状态

Javascript UI路由器的模拟别名状态,javascript,angularjs,angular-ui-router,Javascript,Angularjs,Angular Ui Router,我有许多页面/url都使用相同的父状态/模板: /orders/list /orders/create /products/list /products/create 现在,我有两个虚拟状态/路由(/产品和/订单),它们仅用于为其他子状态创建父状态-a)我没有它们,b)我复制它们以获得所需的URL .state('orders', { url: "/orders", templateUrl: "/partials/common/main" }) .sta

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

/orders/list
/orders/create
/products/list
/products/create
现在,我有两个虚拟状态/路由(/产品和/订单),它们仅用于为其他子状态创建父状态-a)我没有它们,b)我复制它们以获得所需的URL

.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包含一个供所有订单使用的内部ui视图。。。和产品/。。。在上述两条主要路线中,该视图是相同的(实际上,我有10条相同的“占位符”路线)

您可以设置未使用的状态
摘要:true
,这意味着它们只是充当假人。但是,虚拟路由需要一个类似于
的模板或沿着这些线路的某个模板,以便子模板知道在哪里加载


如果您对这些抽象路由没有控制器逻辑,那么您可以始终忽略它们,只需创建子路由
orders。列出
orders。创建
,而不实际创建
orders
状态。取决于您的要求。

Well orders.list等需要加载到
/partials/common/main
中的内部ui视图中,因此是否有办法省去父路由并以某种方式指定它?或者运行多个抽象父视图是唯一的方法吗?是的,我倾向于对每个常见的可重用父视图都有一个抽象状态。但这通常是有道理的,因为这样每个子级都有通用的控制器,所以也可以在其中放置许多通用逻辑。