2016-06-29 3 views
0

enden Ich habe einen Fehler in angular2 und typescript.The Name der Klasse AccordionGroup sollte mit dem Suffix Component.Its nicht die Ausführung beenden aber Es zeigt den Fehler. Ich habe das Akkordeon in angular2 und typescript implementiert. Hier ist mein Code. Bitte helfen Sie mir, danke im Voraus.So beheben Sie den Fehler 'Der Name der Klasse AccordionGroup sollte mit dem Suffix Component'

import {Component, Input, OnDestroy} from '@angular/core'; 

    @Component({ 
     selector: 'accordion', 
     template:'<ng-content></ng-content>' 
    }) 
    export class Accordion { 
     groups: Array<AccordionGroup> = []; 
     addGroup(group: AccordionGroup): void { 
     this.groups.push(group); 
     } 
     closeOthers(openGroup: AccordionGroup): void { 
     this.groups.forEach((group: AccordionGroup) => { 
      if (group !== openGroup) { 
      group.isOpen = false; 
      } 
     }); 
     } 
     removeGroup(group: AccordionGroup): void { 
     const index = this.groups.indexOf(group); 
     if (index !== -1) { 
      this.groups.splice(index, 1); 
     } 
     } 
    } 
    @Component({ 
     selector: 'accordion-group', 
     template: ` 
     <div class="errors-cont" [ngClass]="{'panel-open': isOpen}"> 
      <div class="acc-header" (click)="toggleOpen($event)"> 
       <ng-content select="error-header"></ng-content> 
      </div> 
      <div class="acc-desc" [hidden]="!isOpen"> 
       <ng-content select="error-body"></ng-content> 
      </div> 
     </div> 
     ` 
    }) 
    export class AccordionGroup implements OnDestroy { 
     private _isOpen: boolean = false; 
     @Input() heading: string; 
     @Input() 
     set isOpen(value: boolean) { 
     this._isOpen = value; 
     if (value) { 
      this.accordion.closeOthers(this); 
     } 
     } 
     get isOpen() { 
     return this._isOpen; 
     } 
     constructor(private accordion: Accordion) { 
     this.accordion.addGroup(this); 
     } 
     ngOnDestroy() { 
     this.accordion.removeGroup(this); 
     } 
     toggleOpen(event: MouseEvent): void { 
     event.preventDefault(); 
     this.isOpen = !this.isOpen; 
     } 
    } 

Antwort

2

Nach dem Styling Guide hier: https://angular.io/guide/styleguide#style-02-03

Sie die Symbolnamen mit den herkömmlichen Suffix anhängen (wie Component, Directive, Module, Pipe oder Service) für eine Sache dieses Typs .

Also, wenn Sie Ihren AccordionGroup Namen AccordionGroupComponent Komponenten ändern wird das Problem gelöst. Dies gilt für alle Ihre Dienste und Komponenten.

+0

Danke sein das Problem zu lösen – Mohit

+0

Wie man diesen Fehler unterdrückt? –

+0

@BenTaliadoros meinst du neben der vorgeschlagenen Konvention? – echonax

Verwandte Themen