这个问题困扰了我一段时间,我试图使用带模板的面板来显示一些数据。面板位于面板内,代码如下:
Ext.define('foo.bar.MainPanel', {
extend: 'Ext.panel.Panel',
...
items: [
xtype: 'panel',
title: 'Sub panel',
tpl: 'Hello {name}'
]
})
通过从控制器加载商店来传递参数名称。的 e.g。 '你好迈克'可以在Chrome和FireFox上正确显示,但在IE 8上不显示任何内容(是的,IE 8,我知道它很糟糕,但必须使用它)
想法?任何想法都将不胜感激。
更新:
我用过
item.update(store) // item is the dom object, store is loaded from db
在控制器方面。它适用于chrome和firefox,但不适用于IE 8。
我删除了该行,并获取了所有具有xtemplate的项目,然后使用store更新,它可以正常工作。
不确定原因..
答案 0 :(得分:1)
让我直截了当地说:这不是IE8与您向我们展示的代码段之间的问题。
我将您的代码段复制到我们的标准ExtJS HTML文件中,添加了所需的数据并将面板放入视口中:
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="X-UA-Compatible" content="IE=Edge">
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<link rel="icon" type="image/vnd.microsoft.icon" href="../favicon.ico">
<title>Test</title>
<link rel="stylesheet" href="resources/css/gray.css">
<script id="microloader" type="text/javascript" src="ext/ext-all-debug.js"></script>
<script>
Ext.onReady(function() {
Ext.define('foo.bar.MainPanel', {
xtype:'x',
extend: 'Ext.panel.Panel',
items: [{
xtype: 'panel',
title: 'Sub panel',
tpl: 'Hello {name}',
data: {
name:'Alexander'
}
}]
});
Ext.create('Ext.container.Viewport', {
items:[{
xtype:'x'
}]
});
});
</script>
</head>
<body>
</body>
</html>
上面的代码给了我&#34; Hello Alexander&#34;在Chrome 37,IE11和IE8中。我猜你在你没有向我们展示的代码中做了一些IE8不兼容的hokey-pokey。
您是否已经在IE8中尝试过F12调试工具?仔细看看控制台日志?筛选出元素列表?
答案 1 :(得分:0)
我遇到了同样的问题我的XTemplate没有在IE上工作。它是关于在我的XTemplate中接收参数的函数,并且IE没有正确处理它。 通过替换
&#34; {[this.getCompanyDescriptionHTML({值})]}&#34;
带
&#34; {[this.getCompanyDescriptionHTML({值:值})]}&#34;
解决了我的问题
ExtJs XTemplate is not working with IE when it contains functions