0

我正在使用 ExtJs 3.4 并具有以下代码来创建隐藏字段:

box.hidden = this.el.insertSibling({
    tag: 'input',
    type: 'hidden',
    value: itemVal,
    name: (this.hiddenName || this.name)
}, 'before');

但是,当itemVal是 json-string(或带引号字符的字符串)时,它会创建一个如下所示的元素:

<input type="hidden" value="[" 635f7ede-7add-415f-8461-548d17027cac.group","bbe2x:101"]"="" name="selector_account_ef8e33ca71e749dca21997f51b404e23" id="ext-gen1766">

问题在于它将 html 连接起来以提高性能。因此,在这种情况下,我想通过设置Ext.DomHelper.useDom为 true 来创建元素。应该很容易解决,对吧?但是检查 useDom 变量的内部代码会检查传递给Ext.applyfunction 而不是 using的私有对象Ext.DomHelper.useDom。因此,如果我在检查它的函数内将 Ext.DomHelper.useDom 设置为 true 并不重要,它永远不会是真的。在这里查看 ExtJs 代码:

http://docs.sencha.com/ext-js/3-4/source/DomHelper-more.html

// private
function doInsert(el, o, returnElement, pos, sibling, append){
    el = Ext.getDom(el);
    var newNode;
    if (pub.useDom) {
       ...
    } else {
       ...
    }
    return returnElement ? Ext.get(newNode, true) : newNode;
}

我发现了一个已关闭的旧错误报告(http://www.sencha.com/forum/showthread.php?76966-CLOSED-3.0.0-DomHelper-s-useDom-bug)但我没有了解为什么以及如何将 useDom 设置为 true。

当然,通过替换来修复它很简单,"&quot;我想了解它。

4

0 回答 0