ckeditor java 使用,CKEditor5在自定义数据处理器中使用模型
最近,一個similar question was raised on CKE5 GitHub . 問題是關于將JSON數(shù)據(jù)作為編輯器輸出,但是您提出的主題也部分涵蓋 .
(...)如何從數(shù)據(jù)處理器訪問模型
直接在模型上運行存在一些問題和風險 . 這不是推薦的東西 . 它在鏈接的帖子中解釋 .
(...)我的問題是如何將其轉(zhuǎn)換為模型/ DocumentFragment
與直接在模型上運行相比,這是一種更好(風險更小)的方法 . 但是,我不得不問 - 為什么要轉(zhuǎn)換模型?也許有更好的解決方案來解決你的問題?
要在視圖和模型之間進行轉(zhuǎn)換,必須使用 DataController#toView 和 DataController#toModel . DataController 實例位于 Editor#data . 要在數(shù)據(jù)處理器中使用它,數(shù)據(jù)處理器需要訪問編輯器實例 .
我建議創(chuàng)建自己的編輯器類,擴展一個CKE5編輯器類 . 然后,在新的編輯器類構造函數(shù)中,覆蓋數(shù)據(jù)處理器并傳遞編輯器實例 . 就像是:
class MyEditor extends ClassicEditor {
constructor() {
this.data.processor = new MyDataProcessor( this );
}
}
class MyDataProcessor() {
constructor( editor ) {
this._editor = editor;
}
toData( viewDocumentFragment ) {
const modelDocumentFragment = this._editor.data.toModel( viewDocumentFragment );
// ...
}
toView( modelData ) {
// ...
this._editor.data.toView( ... );
// ...
}
}
這些只是為了顯示方向,而不是工作/測試樣本 .
不過,我想知道為什么你堅持使用模型而不是視圖來生成編輯器輸出 .
BTW . 如果你繼續(xù)這樣實現(xiàn)它,整個過程將會有點愚蠢:) . 首先,您將獲得模型數(shù)據(jù),然后將其轉(zhuǎn)換為視圖(在數(shù)據(jù)處理器中),然后編輯器將獲取視圖數(shù)據(jù)并將其轉(zhuǎn)換回模型:) . 所以也許你也會對覆蓋 Editor#setData 方法感興趣,所以不會發(fā)生不必要的轉(zhuǎn)換 .
總結
以上是生活随笔為你收集整理的ckeditor java 使用,CKEditor5在自定义数据处理器中使用模型的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: php 回复id同过session 任意
- 下一篇: oracle 日期加3个月,三个日期函数