Ajax异步获取数据到KindEditor的时候无法显示数据

来源:互联网 发布:java枚举单例模式 编辑:程序博客网 时间:2024/04/18 14:21

    近期,在做一个有关于编辑通知公告这样的模块的时候出现了一个问题 

    就是使用ajax从controller层返回map中获取数据,然后把这个数据赋值给KindEditor这个编译器的时候 数据无法显示的问题 

   最初以为是数据匹配失败 认真检查了每一个ajax中对应html中的id 发现没有问题 然后是使用console打印出数据 发现也没有问题 数据是能传过来的

那么问题就锁定在了编译器  首先 编译器需要加载两个js js的加载顺序也必须固定

<script language="javascript" src="../../../editor/kindeditor-all.js"></script><script language="javascript" src="../../../editor/lang/zh_CN.js"></script>
然后考虑到ajax是异步获取数据 关于ajax的异步获取数据 就是不刷新网页 不像同步操作一样 刷新页面 阻塞了用户进行操作 ,异步改善了这一个用户体验,但是问题也来了,在ajax还没有把数据加载进html里面的时候 ,编译器就已经加载完了,那么里面一定是没有数据的 

 所以跟着这个思路 将编译器加载的scrip放在了html的最下面

$(function(){    KindEditor.ready(function(K) {        editor = K.create('#xx', {            width : "100%", //编辑器的宽度为70%            height : "200px", //编辑器的高度为100px            resizeType : 0,            uploadJson : '../../../editor/jsp/upload_json.jsp',            fileManagerJson : '../../../editor/jsp/file_manager_json.jsp',            allowFileManager : false        });    });});

测试发现没有用 考虑到可能是ajax获取数据传到html的时候 页面已经加载完成了 所有放在哪里都没有用 包括在html中引用js放在最前面也没用 

然后 又测试了 把编译器加载的function 放在了ajax的那个js里面 让ajax加载数据的时候去加载这个编译器加载的方法 然后发现 只会调用这个方法 但是进不去方法的内部进行加载 应该是页面中引入的js没有被在js中的ajax所找到 但是页面也没有报错 这个可能是应为ajax使得程序的错误机制发生了异常 这个以前也遇到过

 最后测试了很多办法 包括写死循环等等 

最终 在ajax中加入了这一行代码 当数据加载完成以后 直接将数据扔给已经加载完的编译器。。。问题就解决了。。

KindEditor.html('#xx',data.nr);





阅读全文
0 0
原创粉丝点击