主题: ExtJs中,KindEditor的值无法关联改变
作者: fengyitian, 发布日期: 2012-06-18 11:00:53, 浏览数: 4577

我用ExtJS做的效果是,一个Grid列表,其中有一列为“编辑”,点击后弹出KindEditor。里面显示文章的具体内容。

但是KindEditor的值没办法跟着改变,永远都是第一个编辑的文章的内容。


我用的是editor.html(....)的方法 也无效


是这么写的。


form.getForm().load({

    url:'.......?id='+id,

    success:function(form,action){

        setTimeout(function(){

            var editor=KindEditor.create('#textarea_a');

            editor.html(action.response.responseText);

        },1000)

    }

})

作者: Roddy, 发布日期: 2012-06-18 12:12:00

KindEditor.create是异步的,不能马上调用相关方法,可以这样写:

form.getForm().load({
    url:'.......?id='+id,
    success:function(form,action){
        setTimeout(function(){
            var editor=KindEditor.create('#textarea_a', {
afterCreate : function() {
this.html(action.response.responseText);
}
});
        },1000)
    }
})
回复
作者: fengyitian, 发布日期: 2012-06-18 16:51:21

回复Roddy:非常感谢Roddy热心的回答,但是没有达到理想的效果,还是和之前一样,永远是第一个记录,不知道是什么造成的呢?

我在

afterCreate:function(){

    this.html(action.response.responseText);

    加上alert(action.response.responseText);

}


证明每次action.response.responseText的值是正确的,也是变化的,不知道为什么this.html函数只第一次执行成功了

回复
作者: Roddy, 发布日期: 2012-06-18 18:15:23
回复fengyitian:不太可能啊,有没有发生JS错误呢。
回复
作者: Roddy, 发布日期: 2012-06-18 18:18:02
是不是关闭时没有移除编辑器呢,参考这个例子,http://www.kindsoft.net/ke4/examples/jquery-ui.html
回复
作者: fengyitian, 发布日期: 2012-06-21 17:07:47
回复Roddy:没有任何js错误呢,就是内容不变;关闭时确实没有卸载,因为这个弹出窗口关闭时并不销毁,而是隐藏了,所以,,,
回复
作者: Roddy, 发布日期: 2012-06-21 17:50:21

可以第一次创建,第二次开始直接editor.html('abc');,试试这样的方式。


if (!window.editor) {
    window.editor = K.create();
} else {
    editor.html('abc');
}
回复
发表新帖 发表回复