index.html是根页面,activity.html,login.html是index.html的子视图,enroll.html是activity.html的子视图。
index.html
1 <body ng-app='activityApp'> 2 <div ui-view></div> 3 <div ui-view="login"></div> 4 </body>
activity.html
1 <div> 2 <div> 活动页 </div> 3 <div ui-view></div> 4 </div>
login.html
<div> <div> 登录页 </div> </div>
enroll.html
1 <div> 2 <div>报名页 </div> 3 </div>
activity.js
红色字体部分表示传递的参数,注意state中含有views和不含views的情况下params所在位置。
1 $stateProvider.state('activity', { 2 url: '/activity', 3 templateUrl: 'activity.html', 4 controller: 'activityController' 5 }).state('activity.login', { 6 url: '/activity-login', 7 views: { 8 'login@': { 9 templateUrl: 'activity-login.html', 10 controller: 'loginController' 11 } 12 } 13 params:{ 14 'token' : null 15 } 16 }).state('activity.enroll', { 17 url: '/activity-enroll', 18 templateUrl: 'activity-enroll.html', 19 controller: 'enrollController',
20 params:{
21 'requires' : null
22 }
23 }
24 }).
在loginController,enrollController中注入$stateParams,分别使用$stateParams.token、$stateOarams.requires获取参数的值。