我正在使用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 / 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>
对于user / index.html,我有:
<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>
我使用的网址是:
/ company [works]
/ company / 92 [作品]
/ company / 92 / user [没办法]
我应该怎样做才能使用动态参数?
答案 0 :(得分:0)
我还没有解决这个问题,但是围绕它来了:
.state('company.user.view', {
url: '/{user_id:[0-9]{1,8}}',
...
})
.state('company.user.edit', {
url: '/{user_id:[0-9]{1,8}}/edit',
...
})
我必须在每个网址中指定一个ID