recherche

Maison  >  Questions et réponses  >  le corps du texte

Problème avec l'actualisation de l'éditeur personnalisé dans laravel-admin

J'ai défini le composant dans laravel-admin. Il peut être utilisé, mais il doit être actualisé à chaque fois
Quand je clique sur modifier, c'est comme ça Ce n'est que lorsque je l'actualise qu'il deviendra la deuxième image.

Je veux savoir comment le changer directement en image du chapitre 2 sans actualiser. . . .

Le composant est écrit comme ceci, référez-vous à la documentation officielle

<?php
namespace App\Admin\Extensions;

use Encore\Admin\Form\Field;

class UEditor extends Field
{
    protected $view = 'admin::form.editor';
    protected static $css = [

    ];

    protected static $js = [
       'vendor/ueditor/ueditor.config.js',
        'vendor/ueditor/ueditor.all.js',
    ];

    public function render()
    {
        $cs=csrf_token();
        $config=config('ueditor.route.name');
        $this->script = <<<EOT
          window.UEDITOR_CONFIG.serverUrl = '$config'
 var ue = UE.getEditor('{$this->id}');
    ue.ready(function() {
        ue.execCommand('serverparam', '_token', '$cs'); // 设置 CSRF token.
    });
  
EOT;
        return parent::render();

    }
}
女神的闺蜜爱上我女神的闺蜜爱上我2780 Il y a quelques jours1526

répondre à tous(1)je répondrai

  • phpcn_u1582

    phpcn_u15822017-06-16 09:21:36

    Vous devez utiliser vue, vous devez écrire ueditor en tant que composant

    <template>
      <p ref="editor"></p>
    </template>
    
    <script>
    
      import './ueditor.config';
      import './ueditor.all';
      import './lang/zh-cn/zh-cn';
    
    
      export default {
        data() {
          return {
            id: parseInt(Math.random()*1000)+'ueditorId',
          };
        },
        props: {
          value: {
            type: String,
            default: null,
          }
        },
        watch: {
          // value: function value(val, oldVal) {
          //   this.editor = UE.getEditor(this.id);
          //   if (val !== null) {
          //     this.editor.setContent(val);
          //   }
          // },
        },
        mounted() {
    
          var _this = this;
          this.$nextTick(function f1() {
            // 保证 this.$el 已经插入文档
    
            this.$refs.editor.id = this.id;
            this.editor = UE.getEditor(this.id, this.config);
    
            this.editor.ready(function f2() {
              this.editor.setContent(this.value==null?'<p></p>':this.value);
              this.editor.addListener("contentChange afterExecCommand", function () {
                const wordCount = _this.editor.getContentLength(true);
                const content = _this.editor.getContent();
                const plainTxt = _this.editor.getPlainTxt();
                _this.$emit('input', { wordCount: wordCount, content: content, plainTxt: plainTxt });
              }.bind(this));
    
              // this.$emit('ready', this.editor);
            }.bind(this));
          });
        },
      };
    </script>
    

    répondre
    0
  • Annulerrépondre