【ngx-ueditor】百度编辑器按下Shift键不触发contentChange事件

背景:基于Angular 6,引入ngx-ueditor

发现现象:如果以Shift键+任意键结尾,则ngModel会丢失包含shift键的字符

                 例如:输入“ABC+AB++++”,则ngModel中只能获得“ABC+AB”,丢失最后的几个+号

原因:按下Shift键不触发编辑器的contentChange事件,

           但如果输入shift键+任意键后,又输入其他正常字符,触发了contentChange事件,则可以获得完整文本,

           即,若不是以shift键+任意键结尾,就不存在问题

解决方案一:在保存的时候,调用ueditor的getContent()方法,赋值给,接口参数,手动获取完整文本保存

Html:

 <ueditor [(ngModel)]="content" #full_content></ueditor>

       定义ViewChild:

@ViewChild('full_content') full_content: UEditorComponent;

  保存的时候,获取完整文本,传到接口参数:

 let content = this.full_content.Instance.getContent();

缺点:每次使用ueditor插件都要在提交接口的时候,再获取一次完整文本,代码重复,且对开发人员来说,Bug修复需要修改每个使用uEditor的页面,繁琐,易出错

        

解决方案二:  需要修改Ueditor.all.js(V1.4.3.3版本)文件的三处位置,具体如下:

7487行:删除“|| evt.shiftKey”条件判断;

14390行:删除me.keydown事件的“ && !evt.shiftKey”条件判断;

14429行:删除me.keydown事件的“&& !evt.shiftKey”条件判断; 

但由于考虑修改插件源码不利于插件维护和插件升级,故没有采取第二种方案。

 

 

 

参考资料:https://github.com/cipchk/ngx-ueditor/blob/master/README.md

转载于:https://www.cnblogs.com/alwaysblog/p/11283752.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值