//menu function define(["app"], function (app) { app.run(['$state', '$rootScope', '$filter', '$templateRequest', '$compile', 'config', function($state, $rootScope, $filter, $templateRequest, $compile, config){ $rootScope.menuState = ''; $rootScope.isLoadMenu = false; $rootScope.isShowMenu = false; //載入menu $rootScope.loadMenu = function(menu){ if(!$rootScope.isLoadMenu){ $templateRequest('module/system/program/mms03_system_home/mms03_system_home.html').then(function(respose){ var menuDiv = document.getElementById('menu'); var menuScope = menuController($rootScope.$new(true), menu); angular.element(menuDiv).append($compile(respose)(menuScope)).removeClass('menu-hide').css('background', '#eef1f7'); $rootScope.isLoadMenu = true; showMenu(menu); }); } else { showMenu(menu); } }; //開啟menu $rootScope.permissions = []; $rootScope.showMenu = showMenu; $rootScope.menuList = []; function showMenu(menu){ if(menu){ $rootScope.menuList = menu; } if(checkMenu()){ $rootScope.isShowMenu = true; $rootScope.menuState = 'is-menu-showed'; } } function checkMenu(){ if($rootScope.menuList && $rootScope.menuList.length>0){ var menuItem_count = 0; $rootScope.menuList.forEach(function(menuItem){ if(menuItem.isShow){ menuItem_count++; } }); return menuItem_count>1; } else { return false; } } //關閉menu $rootScope.hideMenu = function(){ $rootScope.isShowMenu = false; $rootScope.menuState = ''; } function menuController(scope){ scope.menuClick = function(item, event){ var paramets; if(item.isci == true){ $rootScope.changeProgram(config.cache.ci.toLowerCase()); } else if(item.isco == true){ $rootScope.changeProgram(config.cache.co.toLowerCase()); } else if($rootScope.menuClick){ $rootScope.menuClick(item.name, item); } else { $rootScope.changeProgram(item.name, paramets); } }; return scope; } $rootScope.currentState = ''; $rootScope.$on('$stateChangeSuccess',function(event, toState, toParams, fromState, fromParams){ $rootScope.currentState = toState.name; }); }]) });