angular - CKEditor 5 - 如何从 TypeScript 而不是 CSS 以编程方式设置编辑器的高度
问题描述
我在 Angular 8 项目中使用 CKEditor 5。我知道我可以使用样式表设置编辑器的编辑器高度
:host ::ng-deep .ck-editor__editable {
min-height: 500px;
}
这种方法有效。
但我不能使用它,因为我不知道最小高度应该是 500px。所需的高度将在TypeScript中计算。因此我需要知道如何从那里设置它。
我尝试使用querySelector设置高度。喜欢-
selector.style.minHeight = calculatedHeight
它最初可以工作,但问题是当编辑器聚焦/模糊时,调用事件函数将高度重置为其中总内容的高度。
现在,我可以处理这些事件以重新调整高度,如下所示 -
<ckeditor [editor]="Editor" (ready)="onReady($event)" (focus)="readjustHeight()" (blur)="readjustHeight()" data="<p>Hello, world!</p>"></ckeditor>
现在聚焦保留提供的高度。但是,当单击触发模糊事件的其他位置时,高度会重新调整,但其他一些后续事件会再次将其重置。我不知道模糊后会触发哪个事件。此外,这也不是一个好的解决方案。
TL;DR:min-height
我要设置的编辑器是动态的,并且是在 TypeScript 中计算的
。所以我不能使用 CSS,需要从 TypeSript 设置高度。
解决方案
回答我自己的问题,因为它可能对其他人有用。从 Github 上的 CKEditor 团队得到了答案。
要调整可编辑元素的高度,它将如下所示:
editor.editing.view.change( writer => {
writer.setStyle( 'height', '200px', editor.editing.view.document.getRoot() );
} );
这适用于所有类型的编辑器。
推荐阅读
- javascript - React Native - 从另一个文件导航
- c# - 一旦满足基本情况,如何使这种递归方法停止?
- javascript - 烧瓶 reactjs gulp 设置自动重新加载
- c - Assigning matrix to struct
- javascript - 我的 js 语法或结构有什么问题?
- java - Shell排序不是对数组的第一个元素进行排序
- android - 如何检查我们是否已经调用了 fusedLocationProviderClient.requestLocationUpdates(locationRequest, pendingIndent);
- macos - 如何在 MacOS 上监控麦克风输入电平?
- jenkins - Jenkins 上的 pytest-html 报告没有过滤器复选框,也没有列排序
- python - 如何从编码的链接矩阵手动构造树状图