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); }
 | 
						|
  );
 | 
						|
}]);
 |