2014-09-16 5 views
0

Ce problème me dérange pendant un moment, j'essaie d'utiliser le panneau avec le modèle pour afficher des données. Le panneau est dans un panneau, le code est comme:ExtJs 4 Panneau avec XTemplate ne fonctionne pas avec IE 8

Ext.define('foo.bar.MainPanel', { 
    extend: 'Ext.panel.Panel', 
    ... 
    items: [ 
     xtype: 'panel', 
     title: 'Sub panel', 
     tpl: 'Hello {name}' 
    ] 
}) 

Le nom du paramètre est passé en chargeant le magasin du contrôleur. par exemple. 'Bonjour Mike' peut être affiché correctement sur Chrome et FireFox, mais n'affiche rien sur IE 8 (oui, IE 8, je sais que c'est nul, mais il faut l'utiliser)

Des idées? Toutes les pensées seront appréciées.

Mise à jour:

I utilisé

item.update(store) // item is the dom object, store is loaded from db 

à côté du contrôleur. Il fonctionne pour chrome et firefox, mais pas IE 8.

J'ai supprimé cette ligne, et obtenir tous les éléments qui ont xtemplate, puis mettre à jour avec magasin à la place, cela fonctionne.

Je ne sais pas pourquoi ..

+0

La version de ExtJs est 4.2.2 – thinkman

Répondre

1

Permettez-moi d'obtenir ce droit: Ce n'est pas un problème entre IE8 et le code extrait nous a montré.

Je copiais votre extrait de code dans notre fichier standard ExtJS HTML, ajouté les données requises et mettre le panneau dans une fenêtre:

<!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> 

Le code me donne ci-dessus "Bonjour Alexander" dans Chrome 37, IE11 et IE8. Je suppose que vous faites un hokey-pokey IE8-incompatible dans le code que vous ne nous avez pas montré.

Avez-vous déjà essayé les outils de débogage F12 dans IE8? A regardé de plus près le journal de la console? Sifted à travers la liste des éléments?

+0

Merci pour votre réponse. C'est étrange. En fait, le panneau affiché dans une seconde, puis il a disparu. J'ai utilisé la console pour voir le journal, qui est exactement le même que celui montré par la console Chrome. – thinkman

0

Je faisais face au même problème Mon XTemplate ne fonctionnait pas sur IE. Il s'agissait de la fonction qui recevait le paramètre dans mon XTemplate et IE ne le traitait pas correctement. En remplaçant

"{[this.getCompanyDescriptionHTML ({valeurs})]}"

avec

"{[this.getCompanyDescriptionHTML ({valeurs: valeurs})]}"

résolu mon problème

ExtJs XTemplate is not working with IE when it contains functions

+0

pourriez-vous s'il vous plaît formater votre code en mettant 4 espace devant chacune de vos lignes de code? –