Функция jquery load () не загружает правильно содержимое Dojo - PullRequest
1 голос
/ 30 августа 2011

На моем веб-сайте несколько вызовов функции jquery load ().

Мы можем подвести итог так:

1) На моей странице индекса это называется $('#mainFrame').load('/antoherPage.jsp');
Я вставляю этот код в заголовок моей страницы указателя:

<link rel="stylesheet" type="text/css" href="http://ajax.googleapis.com/ajax/libs/dojo/1.5/dijit/themes/claro/claro.css"/><script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/dojo/1.5/dojo/dojo.xd.js" djConfig="parseOnLoad: true,locale: 'en'"></scipt>

2) На моей другой странице это называется $('#main').load('/Form.jsp');

3) В «Форме» есть поле из dijit: dijit.form.ValidationTextBox, ...

<input  dojoType='dijit.form.ValidationTextBox'></input>

На моей странице указателя есть следующее:

В принципе, если я загружаю страницу Form.jsp, все отображается правильно. Однако, когда я загружаю свою страницу индекса, все не правильно отображается в форме.

Я хотел бы знать, нужно ли мне писать какой-то специальный код на странице формы или на другой странице. Может быть, dojo / dijit не принимает множественные вызовы загрузки?

Большое спасибо

Bat

1 Ответ

1 голос
/ 30 августа 2011

После того, как вы загрузите страницу ajax, вам нужно позвонить dojo.parser.parse(). Dojo не подозревает, что вы загружаете другую страницу через ajax, и поэтому анализатор не знает, как просматривать разметку для виджетов dijit в разметке.

Вам также понадобится dojo.require('dojo.parser').

РЕДАКТИРОВАТЬ: глядя на загрузочные документы jquery, более полнофункциональный пример будет:

$('#main').load('/Form.jsp', function() {
//make sure we have the dojo.parser component pulled in, although it should probably be done in <head>
dojo.require('dojo.parser');
dojo.parser.parse();
});

Как всегда, компонент dojo.parser должен быть загружен до выполнения этого вызова ajax

...