您可以在另一个 ui-view 中定义一个 ui-view。我已经按照以下方式实现了它,而且非常简单。
在 index.html 里面我有代码:
<div ui-view=""></div>
然后在 user.html 里面我有代码
<div ui-view=""></div>
我已经定义了一个配置来显示我的视图
.config(function($urlRouterProvider, $stateProvider) {
var users = {
//Name must be in format Parent.Child
name: 'users',
url: '/user',
templateUrl: 'users/user.html',
controller: 'usersHandler',
data: {
pageTitle: 'Welcome to Users'
},
},
createUsers = {
name: 'users.createUsers',
url: '/createUser',
templateUrl: 'users/createUser.html',
data: {
pageTitle: 'Create Users'
}
},
listUsers = {
name: 'users.listUsers',
url: '/listUsers',
templateUrl: 'users/userLists.html',
data: {
pageTitle: 'Users listing'
}
},
getUserDealer = {
name: 'users.getUserDealer',
url: '/getUserDealer',
templateUrl: 'users/getUserDealer.html',
data: {
pageTitle: 'Users dealer listing'
}
},
editUser = {
name: 'users.editUser',
url: '/editUser',
templateUrl: 'users/editUser.html',
data: {
pageTitle: 'Edit User'
}
};
//Similarly define all the combination you want to separate
//add routes to stateProvider
$stateProvider
.state('users', users)
.state('users.createUsers', createUsers)
.state('users.listUsers', listUsers)
.state('users.getUserDealer', getUserDealer)
.state('users.editUser', editUser);
$urlRouterProvider.otherwise('/user/listUsers');
});
发生的事情是 user.html 是我的父文件,它加载在 index.html 中,editUser.html、getUserDealer.html 和 userLists.html 等是我使用 ui-view 在 user.html 中加载的子文件。
我将嵌套页面的链接提供为:
<ul class="nav navbar-nav">
<li><a href="#/user/createUser">NEW USER</a></li>
<li><a href="#/user/listUsers">GET USER</a></li>
</ul>
这可以根据需要扩展到其他父母及其子女。
希望对你有帮助!!