我正在使用 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.apply
function 而不是 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。
当然,通过替换来修复它很简单,"
但"
我想了解它。