2014-09-16 2 views
0

Эта проблема меня немного задевает, я пытаюсь использовать панель с шаблоном для отображения некоторых данных. Панель находится внутри панели, код выглядит следующим образом:ExtJs 4 Панель с XTemplate не работает с IE 8

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

Имя параметра передается путем загрузки магазина с контроллера. , например. «Привет Майк» может отображаться правильно на Chrome и FireFox, но ничего не отображается в IE 8 (да, IE 8, я знаю, что это отстой, но им нужно его использовать)

Идеи? Любые мысли будут оценены.

Обновление:

Я использовал

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

в стороне контроллера. Он работает для хрома и firefox, но не IE 8.

Я удалил эту строку и достал все элементы, имеющие xtemplate, а затем обновляю хранилище вместо этого, он работает.

Не знаю, почему ..

+0

версия ExtJS является 4.2.2 – thinkman

ответ

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> 

Код выше дает мне «Привет Александр» в Chrome 37, IE11 и IE8. Я бы предположил, что вы делаете IE8-несовместимый hokey-pokey в коде, который вы нам не показывали.

Вы уже пробовали инструменты отладчика F12 в IE8? Посмотрел более внимательно на журнал консоли? Просеивается через список элементов?

+0

Спасибо за ваш ответ. Это странно. Фактически, панель отображалась в секунду, затем она исчезла. Я использовал консоль для просмотра журнала, который точно такой же, как показывает одна консоль Chrome. – thinkman

0

Я столкнулся с той же проблемой. Мой XTemplate не работал над IE. Речь шла о функции, которая получала параметр внутри моего XTemplate, и IE не имел дело с ним должным образом. Путем замены

"{[this.getCompanyDescriptionHTML ({значений})]}"

с

"{[({this.getCompanyDescriptionHTML значений: значений})]}"

Решено моя проблема

ExtJs XTemplate is not working with IE when it contains functions

+0

Можете ли вы, пожалуйста, отформатировать свой код, поставив 4 места перед каждой из ваших кодовых строк? –

Смежные вопросы