我建立了一个ul,只想在第一个li元素上设置该类.
我想把class =“active”设置在第一个li上.我将索引转换为类属性,但这不是我想要的.
import { Component,View,NgFor,Inject,forwardRef,Input,NgIf,FORM_DIRECTIVES } from 'angular2/angular2'; @Component({ selector: 'tabs' }) @View({ template: ` <ul> <li *ng-for="#tab of tabs;#index = index" class="{{index}}" (click)="selectTab(tab)">{{tab.tabTitle}}</li> </ul> <ng-content></ng-content> `,directives: [NgFor] }) export class Tabs { get tabs() { return this._tabs; } set tabs(value) { this._tabs = value; } private _tabs; constructor() { console.log("ctor.Tabs"); this._tabs = []; } selectTab(tab) { this._tabs.forEach((tab) => { tab.active = false; }); tab.active = true; } addTab(tab: Tab) { if (this._tabs.length === 0) { tab.active = true; } else { tab.active = false; } this._tabs.push(tab); } } @Component({ selector: 'tab',properties: ['tabTitle: tab-title'] }) @View({ template: ` <div [hidden]="!active" [class]="active"> <ng-content/> </div> ` }) export class Tab { @Input() index: number; constructor(@Inject(forwardRef(() => Tabs)) tabs: Tabs) { console.log("ctor.Tab") ; tabs.addTab(this); console.log(tabs); } get active() { return this._active; } set active(value) { this._active = value; } private _active; }