0

我对 dijit.Editor 有疑问。从文档中删除它的 DOM 并重新附加它后,它的值被清除。

对此的测试在此小提琴中:根据示例中的注释警报,附加后将清除该值。删除编辑器后它仍在内存中。

我试图将“重新加载”代码添加到onLoadDeferred. 但是在重新添加编辑器时不会调用它。

我自己不能轻易调用 reload ,因为我在我的应用程序中重新附加了整个表单。我对表单的内容一无所知。

另外,我很确定这是 dijit.Editor 的问题。我测试了重新附加 javascript 生成的 Iframe(这里的示例)并且它正在工作。

谢谢你的帮助!

4

1 回答 1

1

我修改了您的iframe javascript 测试,因此它只向 iframe 文档写入一次,并且它的行为似乎与 Dijit 编辑器的行为相同。

我认为您每次都必须设置编辑器的值placeAt,但您不必手动进行,您可以使用以下之一:

  1. dojo/aspect

    aspect.after(editor, "placeAt", lang.hitch(editor, function() {
        this.set("value", this.get("value"));
    }));
    
  2. dojo/declare

    var Editor = declare([DijitEditor], {
        placeAt: function() {
            this.inherited(arguments);
            this.set("value", this.get("value"));
        }
    });
    

在 jsFiddle 上查看它的实际效果:http: //jsfiddle.net/phusick/PXZk5/

于 2012-09-19T09:13:59.833 回答