بروز رسانی محتوای CKeditor5

در ورژن جدید این ادیتور، برخلاف ورژن شماره 4 آن دیگه آبجکتی به نام CKEDITOR.instances وجود نداره. برای اینکه بتوان محتوای ادیتور رو با استفاده از متدهای Ajax ویرایش کرد باید در زمان ایجاد نمونه ادیتور یک کپی گلوبال از آن گرفت تا بعد بتوان محتوا را بروزرسانی کرد.

نمونه کد زیر گویای این موضوع است:

    <script type="text/javascript">
        let myEditor;

        ClassicEditor
            .create(document.querySelector('#menuContent'), {
                language: {
                    // The UI will be English.
                    ui: 'fa',

                    // But the content will be edited in Arabic.
                    content: 'fa'
                },
                placeholder: 'متن منو را وارد نمایید...'
            })
            .then(editor => {
                window.editor = editor;
                myEditor = editor;
            })
            .catch(err => {
                console.error(err.stack);
            });

        function ShowMenuDetails(id) {
            $.ajax({
                url: '@Url.Action("MenuDetails", "Admin")',
                type: 'POST',
                data: JSON.stringify({ id: id }),
                dataType: 'json',
                contentType: 'application/json; charset=utf-8',
                cache: false,
                success: function (data) {
                    $("#menuTitle").val(data.MenuTitle);
                    $("#order").val(data.MenuOrder);

                    myEditor.setData(data.MenuContent);

                    $("#myModal").modal();
                },
                error: function (err) {
                    alert(err);
                },
                statusCode: {
                    404: function (content) { alert(content); },
                    500: function (content) { alert(content); }
                }
            });
        }
    </script>