Closed linj0218 closed 6 years ago
发现一个问题,实例化富文本对象的时候允许传入lang参数,但是没有读取这个默认值,上代码:
ueditor.all.js文件:
Editor方法:
var Editor = UE.Editor = function (options) {
var me = this;
me.uid = uid++;
EventBase.call(me);
me.commands = {};
me.options = utils.extend(utils.clone(options || {}), UEDITOR_CONFIG, true);
me.shortcutkeys = {};
me.inputRules = [];
me.outputRules = [];
//设置默认的常用属性
me.setOpt(Editor.defaultOptions(me));
` /* 尝试异步加载后台配置 */` ` me.loadServerConfig();`
if(!utils.isEmptyObject(UE.I18N)){
//修改默认的语言类型
me.options.lang = checkCurLang(UE.I18N); // 注意checkCurLang这个方法
UE.plugin.load(me);
langReadied(me);
` }else{` ` utils.loadFile(document, {` ` src: me.options.langPath + me.options.lang + "/" + me.options.lang + ".js",` ` tag: "script",` ` type: "text/javascript",` ` defer: "defer"` ` }, function () {` ` UE.plugin.load(me);` ` langReadied(me);` ` });` ` }`
UE.instants['ueditorInstant' + me.uid] = me;
};
checkCurLang方法:
function checkCurLang(I18N){
for(var lang in I18N){
return lang
}
}
checkCurLang这个方法返回遍历i18N对象的第一个key,因为我把中文、英文都引入了,所以默认都是选择中文,而不是读取实例化时候传给的lang参数。把上面的Editor方法中获取默认语言的逻辑修改一下就可以了:
原本:
me.options.lang = checkCurLang(UE.I18N);
改为:
me.options.lang = me.options.lang || checkCurLang(UE.I18N);
在vue.js项目中初始化富文本对象,想要默认英语,但是不管传什么参数都是默认中文
html:
<template>
<div>
<div id="editor" type="text/plain" style="width: 1024px;height:500px;"></div>
</div>
</template>
js:
import '@/../static/uedit/ueditor.config.js';
import '@/../static/uedit/ueditor.all.js';
import '@/../static/uedit/lang/zh-cn/zh-cn.js';
import '@/../static/uedit/lang/en/en.js';
mounted () {
this.ue = window.UE.getEditor('editor', {
BaseUrl: '',
UEDITOR_HOME_URL: 'static/uedit/',
lang: 'en'
});
}