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

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

    就是使用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);
---------------------
作者:独饮阑珊
来源:CSDN
原文:https://blog.csdn.net/qq_38053426/article/details/77732518
版权声明:本文为博主原创文章,转载请附上博文链接!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值