The "Creating Components" example from AngularJS site: http://angularjs.org/#create-components
A Pen by Daniel Moore on CodePen.
The "Creating Components" example from AngularJS site: http://angularjs.org/#create-components
A Pen by Daniel Moore on CodePen.
| <div ng-app="app"> | |
| <tabs> | |
| <pane title="Localization"> | |
| Date: {{ '2012-04-01' | date:'fullDate' }} <br> | |
| Currency: {{ 123456 | currency }} <br> | |
| Number: {{ 98765.4321 | number }} <br> | |
| </pane> | |
| <pane title="Pluralization"> | |
| <div ng-controller="BeerCounter"> | |
| <div ng-repeat="beerCount in beers"> | |
| <ng-pluralize count="beerCount" when="beerForms"></ng-pluralize> | |
| </div> | |
| </div> | |
| </pane> | |
| </tabs> | |
| </div> |
| angular.module('components', []) | |
| .directive('tabs', function() { | |
| return { | |
| restrict: 'E', | |
| transclude: true, | |
| scope: {}, | |
| controller: function($scope, $element) { | |
| 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 | |
| }; | |
| }) | |
| angular.module('app', ['components']) | |
| .controller('BeerCounter', function($scope, $locale) { | |
| $scope.beers = [0, 1, 2, 3, 4, 5, 6]; | |
| if ($locale.id == 'en-us') { | |
| $scope.beerForms = { | |
| 0: 'no beers', | |
| one: '{} beer', | |
| other: '{} beers' | |
| }; | |
| } else { | |
| $scope.beerForms = { | |
| 0: 'žiadne pivo', | |
| one: '{} pivo', | |
| few: '{} pivá', | |
| other: '{} pív' | |
| }; | |
| } | |
| }); | |