consumerportal
Version:
mydna Custimised for you
65 lines (52 loc) • 2.02 kB
text/typescript
/// <reference path="../../includes.ts" />
module app {
class NavController {
public static $inject = ["$scope", "$rootScope"];
public $onInit: Function;
public $onChanges: Function;
public open: boolean = false;
public links: any[] = [
{value: '#/sports', label: 'Dashboard', key: 'dashboard'},
{value: '#/sports/training', label: 'Training Program', key: 'training'},
{value: '#/sports/results', label: 'Results', key: 'results'},
{value: '#/sports/science', label: 'Science', key: 'science'}
];
constructor(
private $scope:any,
private $rootScope: any) {
this.$onInit = () => {
$scope.$on('tabsOpen', (ev: any, val: any) => {
if (val !== 'reportnav') {
this.open = false;
}
})
};
this.$onChanges = (values: any) => {
};
}
toggleTabs() {
this.open = !this.open;
if (this.open) {
this.$rootScope.$broadcast('tabsOpen', 'reportnav');
}
}
}
class Nav {
public bindings: any = {
selectedValue: '<',
};
public template: string = `
<div class="pageNav">
<div class="menu" ng-click="vm.toggleTabs()"><div class="chevron" ng-class="{open: vm.open}"></div></div>
<div class="links" ng-class="{open: vm.open}">
<a ng-repeat="link in vm.links" href="{{link.value}}" ng-class="{selected: link.key === vm.selectedValue}">{{link.label}}</a>
</div>
</div>
`;
public controller: any = NavController;
public controllerAs: string = 'vm';
constructor() {
}
}
angular.module('app').component('sportsNav', new Nav());
};