【发布时间】:2014-08-01 11:46:08
【问题描述】:
我在 plunker 上发布了一个示例:
http://plnkr.co/edit/aOOlXOUIUQTARb8D7jNR?p=preview
我的浏览器控制台没有错误。
我希望当我通过按下按钮下方的相应按钮来切换日/周/月视图时,会显示视图的 html。但事实并非如此。
原因可能是代码中没有命中 day 、 week 和 month 控制器。
所以我的问题是为什么没有加载控制器或没有用真正的 html 部分替换 ui-view。
由于我不知道真正的原因,我不得不询问这两种情况。
'use strict';
angular
.module('dates', ['ui.router'])
.run(['$rootScope', '$state', '$stateParams',
function($rootScope, $state, $stateParams) {
$rootScope.$state = $state;
$rootScope.$stateParams = $stateParams;
}
]
)
.config(function($stateProvider, $urlRouterProvider) {
$urlRouterProvider.otherwise('/dateplanner/day');
$stateProvider
.state('dates', {
url: '/dateplanner',
abstract: true,
views: {
'menu@': {
templateUrl: 'menu.html'
},
'content@': {
templateUrl: 'dateplanner.html',
controller: 'DateplannerController'
}
}
})
.state('dates.day', {
url: '/day',
views: {
'planner@': {
templateUrl: 'dateplannerday.html',
controller: 'DateplannerDayController'
}
}
})
.state('dates.week', {
url: '/week',
views: {
'planner@': {
templateUrl: 'dateplanner.week.html',
controller: 'DateplannerWeekController'
}
}
})
.state('dates.month', {
url: '/month',
views: {
'planner@': {
templateUrl: 'dateplanner.month.html',
controller: 'DateplannerMonthController'
}
}
})
});
MENU.HTML
<ul>
<li ng-class="{ activeButton: $state.includes('dates') }" ui-sref-active="active">
<a ui-sref="dates.day">date planner</a>
</li>
</ul>
DATEPLANNER.HTML
<div class="btn-group">
<button ui-sref="dates.day" ui-sref-active="btn-primary" type="button" class="btn btn-default">Day</button>
<button ui-sref="dates.week" ui-sref-active="btn-primary" type="button" class="btn btn-default">Week</button>
<button ui-sref="dates.month" ui-sref-active="btn-primary" type="button" class="btn btn-default">Month</button>
</div>
<div style="background:white;" ui-view="planner">
Loading...</div>
【问题讨论】:
标签: angularjs angular-ui-router