Moh*_*hit 5 css twitter-bootstrap typescript eslint angular
我在 Angular2 和 TypeScript 中遇到错误。类 AccordionGroup 的名称应以后缀 Component 结尾。它不会停止执行,但会显示错误。我已经在 Angular2 和 TypeScript 中实现了手风琴。这是我的代码。请帮助我提前致谢。
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;
}
}
Run Code Online (Sandbox Code Playgroud)
根据此处的样式指南:https ://angular.io/guide/styleguide#style-02-03
请在符号名称后附加该类型事物的常规后缀(例如
Component
、Directive
、Module
、Pipe
或)。Service
因此,如果您将AccordionGroup
组件名称更改AccordionGroupComponent
为该问题将得到解决。这适用于您的所有服务和组件。
归档时间: |
|
查看次数: |
11082 次 |
最近记录: |