app.controller('menuCtr', ['$scope', '$stateParams', '$state', 'pubSubService', 'bookmarkService', function($scope, $stateParams, $state, pubSubService, bookmarkService) { $scope.login = $stateParams.login && false; /**< 是否登陆 */ $scope.selectLoginIndex = 0; /**< 默认登陆之后的选择的菜单索引,下表从 0 开始 */ $scope.selectNotLoginIndex = 0; /**< 默认未登陆之后的选择的菜单索引,下表从 0 开始 */ $scope.keyword = ''; /**< 搜索关键字 */ semanticInit(); /** * @todo http://stackoverflow.com/questions/31449948/ui-router-state-go-not-working */ // if ($scope.login) { // setTimeout(() => { // $state.go('bookmarks', { // foo: 'i love you', // bar: 'hello world' // }) // }, 0); // } pubSubService.subscribe('loginCtr.login', $scope, function(event, params) { $scope.login = params.login; }); // 登陆之后显示的菜单数据。uiSerf:内部跳转链接。 $scope.loginMenus = [{ uiSref: 'bookmarks', title: '书签' }, { uiSref: 'tags', title: '书签分类' }, { uiSref: 'advice', title: '建议' }, { uiSref: 'settings', title: '设置' }, { uiSref: 'intro', title: '说明' }]; // 未登陆显示的菜单数据 $scope.notLoginMenus = [{ uiSref: '/', title: '首页' }, { uiSref: 'login', title: '登陆' }]; /** * @func * @desc 点击搜索按钮搜索书签 */ $scope.searchBookmarks = function() { console.log('searchBookmarks clicked...'); pubSubService.publish('MenuCtr.searchBookmarks', { 'keyword': $scope.keyword }); $scope.selectLoginIndex = 0; } /** * @func * @desc 点击下拉列表详情搜索 */ $scope.searchDetail = function() { pubSubService.publish('MenuCtr.searchDetail', { 'key': 'JavaScript' }); } $scope.showAddBookmarkMoadl = function() { pubSubService.publish('MenuCtr.showAddBookmarkMoadl', { 'action': 'add' }); } $scope.logout = function() { var params = { userName: 'luchenqun' }; bookmarkService.logout(params).then( function(data) { console.log('logout..........', data) $scope.login = false; $state.go('login', { foo: 'i love you', bar: 'hello world' }) }, function(errorMsg) { console.log(errorMsg); } ); } function semanticInit() { setTimeout(() => { $('.ui.dropdown').dropdown({ action: 'nothing', }); $('.ui.checkbox').checkbox(); $('.ui.checkbox.js-radio-navigate').checkbox('check'); $('.ui.menu a.item').on('click', function() { $(this) .addClass('active') .siblings() .removeClass('active'); }); }, 100); } }]);