У меня проблемы с рендерингом моей сетки EXTJS, которая работает поверх приложения django. Сетка отображается только часть времени. Когда сетка должна отображаться, она работает. Когда сетка не должна отображаться, я получаю сообщение об ошибке «ct is notfined» от extjs-core. Я исследовал эту ошибку, и кажется, что это происходит, когда мой <div id="my-grid">
не определен. Div определяется внутри grid.html, который загружается только иногда.
Это мои файлы.
view_main.js - я определяю все свои объекты здесь, в Ext.onReady.
Ext.onReady(function(){
var grid = new Ext.grid.GridPanel({
border: false,
//...
}
grid.render('my-grid') // comment this out and "ct is not defined" goes away
// but the grid never renders in grid.html
base.html - мой базовый файл django, который расширяет мои шаблоны. Этот файл также загружает мой файл view_main.js.
<!-- Load Script -->
<script type="text/javascript" src="/site_media/js/view_main.js" ></script>
grid.html - html-файл сетки, который отображается в EXTJS TabPanel.
<div id="my-grid" style="border: height: 800px; width: 800px;"></div>
Я не хочу даже пытаться визуализировать свою сетку, если не отображается grid.html. Но сетка не работает, если я не поместил grid.render внутри view_main.js
Если я пытаюсь поместить скрипт рендеринга в grid.html, я получаю сообщение «Ошибка не определена в сетке»
<script type="text/javascript" >
Ext.onReady(function(){
grid.render('my-grid');
}
</script>
Как я могу рендерить сетку только при загрузке grid.html?