Decrease Jquery use in Angular 2 -


this method in angular 2 component. use typescript write angular 2 modules. code shown below - using jquery access dom level. practice in angular 2 ? can please describe trade offs of using jquery inside angular 2. alternate way achieve code snippet. code example appreciable , noob angular 2 developer :)

        declare var $:any;             showhidepreviousbutton() {           if($('#analysistabs').find('ul.nav-tabs > .active').prev('li').length < 1) {             $('.prev-btn').hide();           }           else {             $('.prev-btn').show();           }         } 

i doing dynamic tab creation in angular 2 project . here code hiding "previous button" if there 1 tab, , shows if there more 1 tab.

direct dom access discouraged in angular2 because might prevent utilizing angulars webworker , server-side rendering features.

it working against angulars approach in general. code should modify model (or controller state) , angular dom update depending on model.

i don't know code example tries accomplish guess like

@component({   selector: '...',   template: ` <button [hidden]="tabs.length <= 1" (click)="prev()">prev</button><button (click)="next()">next</button> <my-tab *ngfor="let tab of tabs"    [hidden]="tab !== selectedtab"    [class.active]="tab !== selectedtab">{{tab}}</my-tab>` }) export class mycomponent {   tabs = ['tab1', 'tab2', 'tab3'];   selectedtab;   constructor() {     this.selectedtab = tabs[0];   }    prev() {     var curr = this.tabs.indexof(this.selectedtab);     if(curr > 0) this.selectedtab = this.tabs[curr -1];   }    next() {     var curr = this.tabs.indexof(this.selectedtab);     if(curr < this.tabs.lenght - 1) this.selectedtab = this.tabs[curr +1];   } }