Open hlmd opened 4 years ago
需要自己通过 form-create 实现
我这边尝试的加了form-create里面的富文本,然后图片上传的话需要绑定事件所以就自己弄了下绑定事件
我觉得form-builder 有必要更新一下使用最新的form-create 并把富文本和绑定事件给补充一下
Editor.php `<?php /**
namespace FormBuilder\components;
use FormBuilder\FormComponentDriver; use FormBuilder\Helper;
/**
@method $this bind(String $name , Array $param) 绑定事件 */ class Editor extends FormComponentDriver { /**
/**
/**
/**
protected function init() { $this->placeholder($this->getPlaceHolder()); }
protected function getPlaceHolder($pre = '请输入') { return parent::getPlaceHolder($pre); }
public function getValidateHandler() { return Validate::str(Validate::TRIGGER_BLUR); }
/**
/**
/**
@param $action array 事件名称 **/ protected function imageAdded($name , $param = [] , $action){ if(!$param['url']) return;
//事件内容 string $this->on[$name] = " function(file,Editor,cursorLocation,resetUploader){ var formData = new FormData(); formData.append('file',file); $.ajax({ url: '{$param['url']}', type: 'post', data: formData, dataType: 'JSON', processData: false, contentType: false, success: function(res){ Editor.insertEmbed(cursorLocation , 'image' , res.data.url); resetUploader() } }); } "; }
/**
/**
前端getRules后把字符串的函数转成函数
if(c.on){ //事件 for(let i in c.on){ eval('c.on[i] = ' + c.on[i]); } }
富文本带入 `
以上就是我解决 富文本和绑定事件的代码
可以内置一下绑定事件功能
我引入富文本编辑器的方法简单暴力 1、页面直接页面引入百度编辑器的js插件 2、php端:
$span = new FormBuilder\Driver\CustomComponent('div');
$span->title('编辑器');
$span->props(['id' => 'myEditor']);
页面
var editor = UE.getEditor('myEditor',{
serverUrl: ''
});
editor.ready(function () {
editor.setContent(后台传的内容);
});
动态添加 事件监听