Angularjs ui路由器中的嵌套视图

Angularjs ui路由器中的嵌套视图,angularjs,angular-ui-router,Angularjs,Angular Ui Router,我正在使用angularjs中的一些嵌套状态,在URL的一部分是动态的之前,一切都进展顺利 这很有效 .state('company', { url: "/company", templateUrl: 'views/company/index.html' }) .state('company.list', { url: "/", views: {

我正在使用angularjs中的一些嵌套状态,在URL的一部分是动态的之前,一切都进展顺利

这很有效

.state('company', {
            url: "/company",
            templateUrl: 'views/company/index.html'
        })
        .state('company.list', {
            url: "/",
            views: {
                "c_list": {
                  templateUrl: 'views/company/list.html',
                  controller: 'CompanyCtrl'
                }
            }
        })
        .state('company.view', {
            url: "/:company_id",
            views: {
                "c_info": {
                  templateUrl: 'views/company/view.html',
                  controller: 'CompanyCtrl'
                },
                "c_menu": {
                  templateUrl: 'views/company/menu.html',
                  controller: 'MenuCtrl'
                }
            }
        })
但在扩展company.view时,由于它有一个动态参数,所以失败了

.state('company.view.user', {
            url: "/user",
            views: {
              "c_nested":{
                templateUrl: 'views/user/index.html',
              }
            }
        })
        .state('company.view.user.list', {
            url: "/",
            views: {
                "u_list": {
                  templateUrl: 'views/user/list.html',
                  controller: 'UserCtrl'
                }
            }
        })
如果从company.view而不是company.view扩展用户,则会显示嵌套视图,但如果从company.view扩展,则只会显示主要内容,而不会显示嵌套内容

对于company/index.html,我有:

<div ui-view="c_list"></div>
<div ui-view="c_info"></div>
<div ui-view="c_menu"></div>
<div ui-view="c_nested"></div>
<div ui-view="u_list"></div>
<div ui-view="u_info"></div>
<div ui-view="u_menu"></div>
<div ui-view="u_nested"></div>

对于user/index.html,我得到了:

<div ui-view="c_list"></div>
<div ui-view="c_info"></div>
<div ui-view="c_menu"></div>
<div ui-view="c_nested"></div>
<div ui-view="u_list"></div>
<div ui-view="u_info"></div>
<div ui-view="u_menu"></div>
<div ui-view="u_nested"></div>

假设所有其他html都像

<div>hi</div>
hi
我使用的URL是:

/公司[工程]

/公司/92[工程]

/公司/92/用户[不可能]


我应该怎么做才能使动态参数起作用?

我没有解决这个问题,但解决了它:

.state('company.user.view', {
  url: '/{user_id:[0-9]{1,8}}',
  ...
})
.state('company.user.edit', {
  url: '/{user_id:[0-9]{1,8}}/edit',
  ...
})

我必须在每个url中指定一个id,您需要提供包含这些UI视图的html的大纲。还有你要点击的url。用url“/”定义的第二条路线没有意义,我认为
/company
/company/
是一样的。用户视图也将在
视图/company/view.html
中定义?你还没有提供关于这一点的信息,我需要那些“虚假状态”来为公司和用户附加模板。它们充当抽象状态。事实上,这部分是有效的。不起作用的是在/:company\u id之后,状态
company.view.user
的视图应该在
views/company/view.html
中定义,而不是在company/index中定义。你能检查一下吗不,不是那样的。我将user中所有内容的容器放在
views/user/index.html
中,然后插入
c\u nested
。我已经测试过将/:company\u id从一个家长移动到另一个孩子,然后它就工作了。如果还有别的事,我最终会那样做的