diff --git a/src/modules/accordion/components/accordion-panel.ts b/src/modules/accordion/components/accordion-panel.ts index 25115f96b..cade1a3cc 100644 --- a/src/modules/accordion/components/accordion-panel.ts +++ b/src/modules/accordion/components/accordion-panel.ts @@ -1,4 +1,4 @@ -import { Component, Input, Output, EventEmitter } from "@angular/core"; +import { Component, Input, Output, EventEmitter, ChangeDetectorRef } from "@angular/core"; import { SuiAccordionService } from "../services/accordion.service"; import { TransitionController, Transition } from "../../transition"; @@ -36,6 +36,7 @@ export class SuiAccordionPanel { public set service(service:SuiAccordionService) { this._service = service; + this._changeDetector.detectChanges(); } @Input() @@ -88,7 +89,7 @@ export class SuiAccordionPanel { @Output() public isOpenChange:EventEmitter; - constructor() { + constructor(private _changeDetector:ChangeDetectorRef) { this.transitionController = new TransitionController(false); this._isOpen = false; diff --git a/src/modules/accordion/components/accordion.ts b/src/modules/accordion/components/accordion.ts index aabf7967e..e75e94fc0 100644 --- a/src/modules/accordion/components/accordion.ts +++ b/src/modules/accordion/components/accordion.ts @@ -59,7 +59,7 @@ export class SuiAccordion implements AfterContentInit { this.updatePanels(); // Reconnect panels after they have updated. - this._panels.changes.subscribe(() => setTimeout(() => this.updatePanels())); + this._panels.changes.subscribe(() => this.updatePanels()); } public updatePanels():void {