Angularjs Tab切換功能

Angularjs Tab切換功能

define([],function(){
    app.directive('tabgroup', function () {
      return {
        restrict: 'E',
        replace: true,
        transclude: true,
        controller: function($scope) {
          $scope.templateUrl = '';
          var tabs = $scope.tabs = [];
          var controller = this;
     
          this.selectTab = function (tab) {
            angular.forEach(tabs, function (tab) {
              tab.selected = false;
            });
            tab.selected = true;
          };
     
          this.setTabTemplate = function (templateUrl) {
            $scope.templateUrl = templateUrl;
          }
     
          this.addTab = function (tab) {
            if (tabs.length == 0) {
              controller.selectTab(tab);
            }
            tabs.push(tab);
          };
        },
        template:
          '<div class="ui-tab-classic">' +
            '<div class="ui-tab-hd">' +
              '<ul class="ui-tab-panel" ng-transclude></ul>' +
            '</div>' +
            '<div class="ui-tab-bd"><div class="ui-tab-content">' +
              '<ng-include src="templateUrl">' +
              '</ng-include></div></div>' +
          '</div>'
      };
    })
    .directive('tab', function () {
      return {
        restrict: 'E',
        replace: true,
        require: '^tabgroup',
        scope: {
          title: '@',
          templateUrl: '@'
        },
        link: function(scope, element, attrs, tabgroupController) {
          tabgroupController.addTab(scope);
     
          scope.select = function () {
            tabgroupController.selectTab(scope);
          }
     
          scope.$watch('selected', function () {
            if (scope.selected) {
              tabgroupController.setTabTemplate(scope.templateUrl);
            }
          });
        },
        template:
          '<li ng-class="{\'z-current\': selected}" ng-click="select()">' +
            '<a href="" >{{ title }}</a>' +
          '</li>'
      };
    });
})

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容