| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081 | angular.module('kityminderEditor')    .directive('topTab', function() {       return {           restrict: 'A',           templateUrl: 'ui/directive/topTab/topTab.html',           scope: {               minder: '=topTab',               editor: '='           },           link: function(scope) {               /*               *               * 用户选择一个新的选项卡会执行 setCurTab 和 foldTopTab 两个函数               * 用户点击原来的选项卡会执行 foldTopTop 一个函数               *               * 也就是每次选择新的选项卡都会执行 setCurTab,初始化的时候也会执行 setCurTab 函数               * 因此用 executedCurTab 记录是否已经执行了 setCurTab 函数               * 用 isInit 记录是否是初始化的状态,在任意一个函数时候 isInit 设置为 false               * 用 isOpen 记录是否打开了 topTab               *               * 因此用到了三个 mutex               * */               var executedCurTab = false;               var isInit = true;               var isOpen = true;               scope.setCurTab = function(tabName) {                   setTimeout(function() {                       //console.log('set cur tab to : ' + tabName);                       executedCurTab = true;                       //isOpen = false;                       if (tabName != 'idea') {                           isInit = false;                       }                   });                };               scope.toggleTopTab = function() {                   setTimeout(function() {                       if(!executedCurTab || isInit) {                           isInit = false;                           isOpen ? closeTopTab(): openTopTab();                           isOpen = !isOpen;                       }                       executedCurTab = false;                   });               };               function closeTopTab() {                   var $tabContent = $('.tab-content');                   var $minderEditor = $('.minder-editor');                   $tabContent.animate({                       height: 0,                       display: 'none'                   });                   $minderEditor.animate({                      top: '32px'                   });               }               function openTopTab() {                   var $tabContent = $('.tab-content');                   var $minderEditor = $('.minder-editor');                   $tabContent.animate({                       height: '60px',                       display: 'block'                   });                   $minderEditor.animate({                       top: '92px'                   });               }           }       }    });
 |