注意需要引入KindEditor相关资源

 //所见所得编辑器
Ext.define('ux.form.field.KindEditor', {
extend: 'Ext.form.field.TextArea',
alias: 'widget.kindEditor',
xtype: 'kindEditor',
//最大文本长度
maxLength:5000,
//配置
editorConfig: {
//选项功能
items: [
'source', '|', 'undo', 'redo', '|', 'preview', 'cut', 'copy', 'paste', 'plainpaste', 'wordpaste', '|', 'justifyleft', 'justifycenter', 'justifyright', 'justifyfull', 'insertorderedlist', 'insertunorderedlist', 'indent', 'outdent', 'subscript', 'superscript', 'clearhtml', 'quickformat', 'selectall', '|', 'fullscreen', '/', 'formatblock', 'fontname', 'fontsize', '|', 'forecolor', 'hilitecolor', 'bold', 'italic', 'underline', 'strikethrough', 'lineheight', 'removeformat', '|', 'image', 'table', 'hr', 'emoticons', 'pagebreak', 'anchor', 'link', 'unlink', '|', 'about'
],
minHeight: 200
},
afterRender: function () {
var me = this;
me.callParent(arguments);
//延迟输入验证
me.task = Ext.create('Ext.util.DelayedTask',
function (t) {
me.isValid();
},
me);
if (!me.editor) {
//创建富文本插件
me.editor = KindEditor.create("#" + me.getInputId(), Ext.apply(me.editorConfig, {
//编辑器创建成功
afterCreate: function () {
//标识完成
me.KindEditorIsReady = true;
},
//内容发生改变时
afterChange: function () {
//编辑器初始化完成才执行
if (me.KindEditorIsReady) {
//延迟输入验证
me.task.delay(100);
}
},
//失去焦点
afterBlur: function () {
//输入验证
me.isValid();
}
}));
} else {
me.editor.html(me.getValue());
}
},
setValue: function (value) {
//console.log('setValue');
var me = this;
if (!me.editor) {
me.setRawValue(me.valueToRaw(value));
} else {
if(value){
me.editor.html(value.toString());
}else{ }
}
me.callParent(arguments);
return me.mixins.field.setValue.call(me, value);
},
getRawValue: function () {
//console.log('getRawValue');
var me = this;
if (me.KindEditorIsReady) {
//自动同步值
me.editor.sync();
}
v = me.inputEl ? me.inputEl.getValue() : '';
me.rawValue = v;
return v;
},
//重置
reset: function () {
if (this.editor) {
this.editor.html('');
}
this.callParent();
},
//销毁富文本控件
destroyEditor: function () {
var me = this;
if (me.rendered) {
try {
me.editor.remove();
me.editor = null;
} catch (e) { }
}
},
//销毁
onDestroy: function () {
var me = this;
me.destroyEditor();
me.callParent(arguments);
}
});

ux.form.field.KindEditor 所见所得编辑器的更多相关文章

  1. ux.form.field.Verify 验证码控件

    //验证码控件 Ext.define('ux.form.field.Verify', { extend: 'Ext.container.Container', alias: ['widget.fiel ...

  2. ux.form.field.TreePicker 扩展,修复火狐不能展开bug

    /** * A Picker field that contains a tree panel on its popup, enabling selection of tree nodes. * 动态 ...

  3. ux.form.field.SearchField 列表、树形菜单查询扩展

    //支持bind绑定store //列表搜索扩展,支持本地查询 //支持树形菜单本地一级菜单查询 Ext.define('ux.form.field.SearchField', { extend: ' ...

  4. ux.form.field.Year 只能选年的时间扩展

    效果如图,亲测6.2.1版本可用,用法同时间选择控件 //只选择年的控件 Ext.define('ux.picker.Year', { extend: 'Ext.Component', alias: ...

  5. ux.form.field.Month 只能选年、月的时间扩展

    效果如图,亲测6.2.1版本可用,用法同时间选择控件 //月弹窗扩展 //只选月 Ext.define('ux.picker.Month', { extend: 'Ext.picker.Month', ...

  6. ux.form.field.Password 密码与非密码状态切换

    效果如图: 扩展源码: //扩展 //密码按钮扩展 //支持在密码与非密码之间切换 Ext.define('ux.form.field.Password', { extend: 'Ext.form.f ...

  7. ux.form.field.GridDate 支持快速选择日期的日期控件

    效果如图,亲测6.2.1版本可用 /** *支持快速选择日期的日期控件 */ Ext.define('ux.form.field.GridDate', { extend: 'Ext.form.fiel ...

  8. ExtJs Ext.form.field.TextArea+Ckeditor 扩展富文本编辑器

    Ext.define("MyApp.base.BaseTextArea", { extend: "Ext.form.field.TextArea", xtype ...

  9. ExtJs文件上传(Ext.ux.form.FileUploadField)

    Ext.ux.form.FileUploadField = Ext.extend(Ext.form.TextField, { /**  * @cfg {String} buttonText The b ...

随机推荐

  1. atitit...触发器机制 ltrigger mechanism sumup .的总结O8f

    atitit...触发器机制  ltrigger  mechanism sumup .的总结O8f 1. 触发器的类型 1 2. 实现原理 1 3. After触发器 Vs Instead Of触发器 ...

  2. webpack学习之入门实例

    webpack:前端打包神器,目前活跃度甚至超过了gulp.grunt等,使用webpack打包,简单快速,下面记录下webpack环境搭建以及基本使用: 1.首先新建一个空白目录,用于项目根目录,比 ...

  3. SAE部署django应用

    最近自己动手实现了一个博客系统,使用基于python的web框架django,运行在SAE上.以下是遇到的问题,特总结如下: 1, SAE支持的django等第三方模块的版本如下: http://ww ...

  4. C#多线程解决界面卡死问题的完美解决方案

    C#多线程解决界面卡死问题的完美解决方案 文章转自http://www.sufeinet.com/thread-3556-1-1.html 问题描述: 当我们的界面需要在程序运行中不断更新数据时, 当 ...

  5. 【转】兼容iOS 10 资料整理

    1.Notification(通知) 自从Notification被引入之后,苹果就不断的更新优化,但这些更新优化只是小打小闹,直至现在iOS 10开始真正的进行大改重构,这让开发者也体会到UserN ...

  6. 永久删除 tadb.exe

    系统安装qq手机管家等手机管理软件之后,在开机时会自动运行tadb.exe, 这个垃圾进程会让开发android程序时默认的 adb.exe启动不了,这样就没法用手机调试. 这并不是说tadb.exe ...

  7. sublime Text Pastry使用

    来源:   https://github.com/duydao/Text-Pastry/wiki/Examples Using a text list Using the Clipboard Clip ...

  8. jsp:forward response.sendRedirect

    jsp中<jsp:forward page=""/>和response.sendRedirect("")两种跳转的区别 一.response.sen ...

  9. nexus中央仓库中发布自己的jar包

    1.后台上传 通过nexus后台上传第三方包: http://blog.csdn.net/huchunlinnk/article/details/17789175 上面上传的只能上传release版本 ...

  10. 袭击Mercurial SCM(HG)

    这个叫水银的源代码管理工具尽管默默无闻,但还是得到了非常多团队的使用. 为了迎合某些团队的须要,我们也要用它来管理我们的代码. 今天的任务是先袭击学习.磨刀不误砍柴工. 对工具的掌握越快.工作的效率就 ...