47 lines
1.2 KiB
JavaScript
47 lines
1.2 KiB
JavaScript
angular.module('app', ['ngMaterial', 'navigation-modules', 'navigation-guides', 'code'])
|
|
|
|
.config(function($locationProvider) {
|
|
$locationProvider.html5Mode(true);
|
|
})
|
|
|
|
.controller('NavController', ['$scope', '$location', 'MODULES', 'GUIDES',
|
|
function($scope, $location, MODULES, GUIDES) {
|
|
var that = this;
|
|
|
|
this.areas = [
|
|
{ name: 'Guides', sections: [ { pages: GUIDES.pages } ] },
|
|
{ name: 'Modules', sections: MODULES.sections }
|
|
];
|
|
|
|
this.updateCurrentPage = function(path) {
|
|
console.log('path', path);
|
|
this.currentPage = null;
|
|
|
|
this.areas.forEach(function(area) {
|
|
area.sections.forEach(function(section) {
|
|
|
|
// Short-circuit out if the page has been found
|
|
if ( that.currentPage ) {
|
|
return;
|
|
}
|
|
|
|
if (section.path === path) {
|
|
console.log('found!');
|
|
that.currentPage = section;
|
|
} else {
|
|
section.pages.forEach(function(page) {
|
|
if (page.path === path) {
|
|
that.currentPage = page;
|
|
}
|
|
});
|
|
}
|
|
});
|
|
});
|
|
};
|
|
|
|
$scope.$watch(
|
|
function getLocationPath() { return $location.path(); },
|
|
function handleLocationPathChange(path) { that.updateCurrentPage(path); }
|
|
);
|
|
}]);
|