I have posted a sample on plunker:
http://plnkr.co/edit/aOOlXOUIUQTARb8D7jNR?p=preview
I get no errors in my browser console.
I want that when I switch the day/week/month views by pressing the according button that below the buttons the html for the view is shown. But that happens not.
The reason might because the day , week and month controllers are not hit in the code whyever that is.
So my question is why are the controllers not loaded or the ui-view not replaced with the real html partial.
As I do not know the real cause I have to ask for both cases.
'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>