我的<div ui-view>
文件中有index.html
。这是我的5个州:
$stateProvider
.state('front', {
url: '^',
templateUrl: 'templates/front.html'
})
.state('member', {
url: '/member',
templateUrl: 'templates/member.html'
})
.state('cpanel', {
url: '^/cpanel',
templateUrl: 'templates/cpanel.html'
})
.state('cpanel.users', {
url: '/users',
templateUrl: 'templates/users.html'
})
.state('cpanel.users.edit', {
url: '/:id',
templateUrl: 'templates/users.edit.html'
})
我只想关注/cpanel
部分:
cpanel.html
<!-- Header -->
<!-- Common divs -->
<div ui-view></div>
users.html
<div ng-repeat="user in users" ng-click="edit()">
<div ng-bind="user.name"></div>
...
</div>
例如,当我重定向到cpanel/users/1
时,我仍会看到users.html
页面,users.edit.html
中的内容不会替换users.html
中的旧列表
我做错了什么?
答案 0 :(得分:0)
cpanel.users.edit 是 cpanel.users 的子范围,但 templates / users.html 没有ui-view,所以没有将会呈现。 cpanel.users.edit 也无法替换 cpanel.users ,因为它是它的子范围。
一种解决方案是使 cpanel.users 使用模板进行抽象:
<div ui-view></div>
并添加 cpanel.users.list 以实际列出用户。