Problème d'écho des données CKeditor (méthode setData)

Récemment, j'ai rencontré un besoin. J'ai besoin d'éditer une description textuelle simple dans le backend de gestion pour la description d'affichage du projet du centre commercial. Définir le contenu du champ modifié selon l'éditeur ckeditor intégré avant le système. En ce qui concerne la simplicité et l'utilité de ckeditor, je vais brièvement l'introduire ici;
introduisez d'abord js:
Insérez la description de l'image ici

<script src="/js/ckeditor/ckeditor.js"></script>

Puis initialisation,
Insérez la description de l'image ici

Insérez la description de l'image ici
Le premier paramètre de replace est l'identifiant d'une zone de texte dans l'interface, puis la configuration customConfig peut aller à Baidu en ligne selon vos besoins spécifiques

 let projectIntroduceEditor = CKEDITOR.replace('projectIntroduce', {
        customConfig: '/js/ckeditor-config.js',
        height: 300,
    });

Effet d'interface:
Insérez la description de l'image ici

Notez que la méthode CKEDITOR.replace () a une valeur de retour et que les actions associées suivantes peuvent utiliser cette opération de valeur de retour.
Ensuite, lorsque la méthode de sauvegarde est appelée:
projectIntroduceEditor.getdata ();
Insérez la description de l'image ici
Voici le contenu de l'éditeur normal.
Mais le backend de gestion doit prendre en charge la fonction d'édition pour le contenu des données. À ce stade, vous devez utiliser la méthode echo de CKEDITOR: setData (); j'interroge
l'objet entité dont je dois faire écho en fonction de l'ID du contenu d'édition, et chargez-le en fonction de l'interface.Si la situation revient au contenu à l'intérieur,

Insérez la description de l'image ici
Code:

 window.onload = function () {
 		//这里需要调查询接口,获取project的对象
		let project = {};
		// 然后回显
		paymentRulesEditor.setData(currentProject.paymentRules);
      	projectIntroduceEditor.setData(currentProject.projectIntroduce);
 }

Cependant, quelle que soit la manière dont j'ai défini la valeur, l'interface ne parvient toujours pas à écho (ou parfois non). Sur la base de cette situation, je pense probablement que le chargement de l'éditeur est asynchrone (je ne l'ai pas vérifié, devinez-le), donc dans mon Lorsque le réglage vaut la peine, l'éditeur n'est pas complètement terminé, donc l'écho échoue;
puis, une autre façon de penser, jq juge si un composant est complètement chargé, et le chargement est terminé puis fait écho, Baidu une méthode

let paymentRulesTimer = setInterval(function () {
                        if ($("#projectIntroduce").length > 0) {
                            paymentRulesEditor.setData(currentProject.paymentRules);
                            clearInterval(paymentRulesTimer);
                            return;
                        }
                    }, 100);

Utilisez une minuterie pour surveiller si le composant est chargé, puis définissez l'écho une fois le chargement terminé et le problème résolu
Insérez la description de l'image ici

Je suppose que tu aimes

Origine blog.csdn.net/pjw1217/article/details/112990335
conseillé
Classement