Ich verwende das ng2-ckeditor-Plugin. Die Verwendung der dokumentierten Methode zum Festlegen des Fokus (z. B. on startup) funktioniert nicht, da ich * ngIf verwende, um den Editor anzuzeigen, wenn der Benutzer auf eine Schaltfläche klickt.ng2-ckeditor So stellen Sie den Fokus auf den Editor ein, wenn der Editor NICHT automatisch geladen wird
this.ckConfig = {
uiColor: '#F0F3F4',
height: '350',
extraPlugins: 'divarea',
startupFocus: true
};
So ist die startupFocus Konfigurationsoption nicht funktioniert, offensichtlich, da der ckeditor an dieser Stelle nicht eigentlich in dem DOM ist.
Ich habe auch versucht mit [versteckt] seit dann der Editor ist im DOM, wenn meine Komponente initialisiert, aber natürlich ist der Editor nicht sichtbar, so kann es nicht den Fokus trotzdem erhalten.
Dann entdeckte ich, ich kann ein fertiges Ereignis ausgelöst, wenn der Editor tatsächlich sichtbar und bereit für die Interaktion mit dem Benutzer ist, etwa so:
<div *ngIf="isEditMode">
<ckeditor id="ckeditor"
[(ngModel)]="letterhead"
[config]="ckConfig"
(ready)="onReady($event)"
debounce="500">
</ckeditor>
</div>
aber wie im onReady Fall kann ich den Fokus gesetzt?
EDIT
Nachdem in den Innereien von CKEditor graben, fand ich, dass ich dies in meinem onReady Event-Handler einfach tun können:
onReady(event: any){
event.editor.focus();
}
dies das erste Mal habe ich es versucht. Jetzt, da ich die App neu geladen habe, funktioniert es nicht mehr ... wth?