我正在尝试创建一个XTemplate,我的一个dataIndexes有一个句点...所以我的数据看起来像这样:
{
"one": 1,
"two.one": 21,
"two.two": 22
}
现在,当我创建模板时,我无法执行 {two.one} 之类的操作,因为它认为两个是对象的开头,然后我正在访问其密钥一个。我尝试过像 {'two.one'} 之类的东西,但这也行不通,我已将其追踪到Ext.XTemplateCompiler.parseTag中的罪魁祸首。这段代码打破了它:
// compound Javascript property name (e.g., "foo.bar")
else if (isNaN(name) && name.indexOf('-') == -1 && name.indexOf('.') != -1) {
v = "values." + name;
}
// number or a '-' in it or a single word (maybe a keyword): use array notation
// (http://jsperf.com/string-property-access/4)
else {
v = "values['" + name + "']";
}
所以使用我的 two.one 字符串,我会进入其他地方,但是我真正想要的是紧随其后的其他内容。不幸的是,似乎我不能轻易地覆盖它......有没有人有任何想法?我正在使用Ext JS 4.2.1。
答案 0 :(得分:1)
感谢Sencha Forums上的裙子,我能够解决它:
不应使用 {two.one} 或 {' two.one'} ,而应 {[values [& #39; two.one']]} 即可。直接使用价值就是票。