【发布时间】:2017-04-06 09:57:39
【问题描述】:
我正在尝试管理列表和列表元素的 CRUD。
我希望每个案例的每个元素都有一个状态、一个模板和一个控制器(创建/编辑)。
我创建状态:
state('list', {
parent: 'root',
url: '/list?list_id',
views: {
'content@root': {
templateUrl: 'list.tmpl.html',
controller: 'ListController',
controllerAs: 'vm',
}
}
})
这是完美的,在控制器中我可以检查 list_id 并在创建/编辑之间切换。
当上述状态成为父状态时会出现问题。 介绍孩子时:
state('list-element', {
parent: 'list',
url: '/element?list_id&element_id',
views: {
'content@root': {
templateUrl: 'element.tmpl.html',
controller: 'ElementController',
controllerAs: 'vm',
}
}
})
我不能再有我需要的不确定性了。
为了更简单,我希望 url 结构看起来像这样:
- /list?list_id - 如果 list_id 切换编辑
- /list/element?list_id&element_id - 如果 element_id 切换编辑
注意,创建列表元素时,父状态没有参数。
现在,我可以通过为列表创建两个状态来解决这个问题:
- /list(父)创建
- ?list_id(1 的孩子)编辑
- /element?list_id&element_id(1 的子代)创建或编辑
但这会打破我想要的“一个状态、一个模板和一个控制器”。
无论如何我可以做到按照我想要的方式?
【问题讨论】:
标签: angularjs angular-ui-router