Angularjs ui路由器中的嵌套视图
我正在使用angularjs中的一些嵌套状态,在URL的一部分是动态的之前,一切都进展顺利 这很有效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: {
.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从一个家长移动到另一个孩子,然后它就工作了。如果还有别的事,我最终会那样做的