var NAVSERVICE_CONSTANT = require('./nav-service'); var ngTableDoc = angular.module('ngTableDoc', ['ui.router', 'ngMessages']) .config([ 'NAVSERVICE', '$stateProvider', '$urlRouterProvider', function (NAVSERVICE, $stateProvider, $urlRouterProvider) { $urlRouterProvider.otherwise("/docs/api/"); $stateProvider .state('api', { url:'/docs/api/:doc', views:{ 'navigation':{ templateUrl:'partials/nav.html', controller:'NavController' }, 'content':{ templateUrl: function($stateParams){ return $stateParams.doc ? $stateParams.doc : 'partials/api/ngTable/index.html'; } } } }) // note: runnable examples are not yet implemented (instead we link to external demo site) .state('examples',{ url:'/docs/api/examples', templateUrl:'/partials/examples/' }); } ]).run(function($rootScope, NavStateService){ $rootScope.$on('$stateChangeSuccess', function(event, toState){ NavStateService.setView(toState.name); console.log('Switched state to', toState.name) }); }) .factory('NavStateService', function(){ //default state var navState = "gettingStarted"; return{ getView:function(){ return navState; }, setView:function(viewName){ navState = viewName } } }) .controller('MainController', function ($scope) { $scope.vm = {}; }) .controller('NavController', function ($scope,$location, NAVSERVICE, NavStateService) { var model = {}; var currentView = NavStateService.getView(); model.navigation = NAVSERVICE.filter(function(navItem){ return currentView === navItem.name }); model.navigation = model.navigation[0]; $scope.vm = model; }); ngTableDoc.constant('NAVSERVICE', NAVSERVICE_CONSTANT.data);