码迷,mamicode.com
首页 > Web开发 > 详细

AngularJs 自定义指令

时间:2016-07-04 11:46:02      阅读:166      评论:0      收藏:0      [点我收藏+]

标签:

html代码
<body ng-app="components"> 
  <h3>BootStrap Tab Component</h3> 
  <tabs> 
    <pane title="First Tab"> 
      <div>This is the content of the first tab.</div> 
    </pane> 
    <pane title="Second Tab"> 
      <div>This is the content of the second tab.</div> 
    </pane> 
  </tabs> 
</body>

JavaScript代码
angular.module(components, []). 
  directive(tabs, function() { 
    return { 
      restrict: E, 
      transclude: true, 
      scope: {}, 
      controller: [ "$scope", function($scope) { 
        var panes = $scope.panes = []; 
  
        $scope.select = function(pane) { 
          angular.forEach(panes, function(pane) { 
            pane.selected = false; 
          }); 
          pane.selected = true; 
        } 
  
        this.addPane = function(pane) { 
          if (panes.length == 0) $scope.select(pane); 
          panes.push(pane); 
        } 
      }], 
      template: 
        <div class="tabbable"> + 
          <ul class="nav nav-tabs"> + 
            <li ng-repeat="pane in panes" ng-class="{active:pane.selected}">+ 
              <a href="" ng-click="select(pane)">{{pane.title}}</a> + 
            </li> + 
          </ul> + 
          <div class="tab-content" ng-transclude></div> + 
        </div>, 
      replace: true 
    }; 
  }). 
  directive(pane, function() { 
    return { 
      require: ^tabs, 
      restrict: E, 
      transclude: true, 
      scope: { title: @ }, 
      link: function(scope, element, attrs, tabsCtrl) { 
        tabsCtrl.addPane(scope); 
      }, 
      template: 
        <div class="tab-pane" ng-class="{active: selected}" ng-transclude> + 
        </div>, 
      replace: true 
    }; 
  })

 

AngularJs 自定义指令

标签:

原文地址:http://www.cnblogs.com/xiaoxiaosha/p/5639789.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!