Ich verwende die
<mat-expansion-panel>
, um einige zusammenklappbare/erweiterbare Zonen auf der Benutzeroberfläche einer Formularkomponente zu definieren. Das Formular ist in redux mit @ ngrx/store integriert, das Problem ist, dass wenn ich [expanded] -Eigenschaft auf<mat-expansion-panel>
das Erweiterungsfeld wird erweitert, aber die Animation wird nicht ausgelöst. Ist das ein Fehler oder das erwartete Verhalten?Wie kann ich das Expansionspanel im Redux-Muster integrieren?Wie kann ich das Erweiterungsfeld in @ngrx integrieren, ohne die Animationen zu zerstören? Here ist mein Repository
0
A
Antwort
0
ich das Problem mit einer Richtlinie
import { Directive, Optional, Input, HostListener, Output, EventEmitter } from '@angular/core';
import { MatExpansionPanel } from '@angular/material';
@Directive({selector: '[ngtExpansionPanelToggle]'})
export class ExpansionPanelToggleDirective {
@Input()
set isExpanded(state: boolean) {
this.setIsExpanded(state);
};
@Output() onToggle: EventEmitter<boolean> = new EventEmitter<boolean>();
constructor(@Optional() private _matExpansionPanel: MatExpansionPanel) {
}
@HostListener('click', ['$event'])
togglePanel(event) {
setTimeout(() => {
this.onToggle.emit(this.getExpandedState());
}, 0);
}
private setIsExpanded(state: boolean) {
if (!this._matExpansionPanel) {
return;
}
let panelState = this._matExpansionPanel._getExpandedState();
let newState = this.toPanelState(state);
if (newState === panelState) {
return;
}
this._matExpansionPanel.toggle();
}
private toPanelState(state: boolean) {
return state
? 'expanded'
: 'collapsed';
}
private getExpandedState(): boolean {
let panelState = this._matExpansionPanel._getExpandedState()
if (panelState === 'expanded') {
return true;
}
return false;
}
}
Und ich angebracht, diese Richtlinie html wie diese
<mat-expansion-panel>
<mat-expansion-panel-header ngtExpansionPanelToggle
[isExpanded]="rowConfig?.isPanelOpened"
(onToggle)="handleTogglePanel(rowConfig, $event)">
<mat-panel-title class="ngt-group-title">
{{rowConfig.title}}
</mat-panel-title>
<mat-panel-description class="ngt-group-description">
{{rowConfig.description}}
</mat-panel-description>
</mat-expansion-panel-header>
<ngt-form-elements *ngFor="let rowElements of rowConfig.elements"
[formName]="formStaticConfig.name"
[parentFormGroup]="ngFormGroup"
[outsideDataProviders]="outsideDataProviders"
[elements]="rowElements.elementsOnLine">
</ngt-form-elements>
</mat-expansion-panel>
zu beheben verwaltet
Also wenn der Panel-Zustand mit einem Browser-Ereignis aktualisiert wird, werde ich nicht die Ansicht rendere, sonst wird von der Konfiguration gerendert.
Verwandte Themen
- 1. Wie kann ich das Plugin saml wso2is in Magento integrieren?
- 2. Wie kann ich Moose in Komodo integrieren?
- 3. Wie kann ich Bluetooth in C# integrieren?
- 4. Wie kann ich SIP in Android integrieren?
- 5. Wie kann ich meine Anwendung integrieren?
- 6. Wie kann ich eine Toolbar integrieren?
- 7. Wie kann ich Wordpress mit CodeIgniter integrieren?
- 8. Wie kann ich Bower mit Gulp.js integrieren?
- 9. Wie kann ich FullCalendar mit Codeigniter integrieren
- 10. Wie kann ich Bootstrap mit JSF integrieren?
- 11. Wie kann ich PayPal mit ASP.NET integrieren?
- 12. Ich kann nicht mautic integrieren mit sendgrid
- 13. Wie kann ich Youtube-Musik in iOS-Apps integrieren?
- 14. Wie kann ich Git mit Android Studio integrieren?
- 15. Wie kann ich lambdas in AWS-Umgebung integrieren?
- 16. Wie kann ich ticketmaster api/sdk mit yii2 integrieren?
- 17. Wie kann ich Zoom.us in meine angularJS App integrieren?
- 18. Kann ich Jenkins und XCTest integrieren
- 19. Wie kann ich Fragmente in ViewModels mit MVVMCross integrieren
- 20. Wie kann ich Modularität in meinen Code in C integrieren?
- 21. Wie kann ich die Proguard-Verschleierung in das IntelliJ-Artefakt von JavaFX integrieren?
- 22. Crashlytics in das Bibliotheksprojekt integrieren
- 23. Wie kann ich meine Webanwendung mit Skype, Gtalk eines anderen IM-Systems integrieren?
- 24. Wie kann ich das Verständnis von Sublime-Sprachsyntax erweitern, um benutzerdefinierte Syntax zu integrieren?
- 25. Wie kann ich das ui-bootstrap modal in meine angular 1.5 App integrieren?
- 26. Wie kann ich Svn mit dem Visual Studio 2008 integrieren?
- 27. Wie kann ich ein Punktprodukt in Pyspark 1.6.1 integrieren/berechnen?
- 28. Wie kann ich ReSharper's Dotsettings Datei in SonarQube integrieren?
- 29. Wie kann ich in die Windows Action Center-Wartung integrieren?
- 30. Wie kann ich die jscs Autofix-Funktion in vim integrieren?