2012-07-04 2 views
1

Я в Доджо 1.7, асинхронная загрузка.Доджо 1.7 Содержание Ajax и AMD требуют

У меня есть контент, который я заполняю через ajax с контентом. Я хочу использовать загрузчик декларативно в этом контенте - как мне правильно загружать загрузчик?

Допустим, это моя страница сервера я использую для создания моего контента, который будет установлен в качестве ContentPane:

<script> 
require(["dojox/form/uploader/FileList", 
    "dojox/form/uploader/plugins/Flash"]); 
</script> 

<center> 
<input type="file" multiple="true" data-dojo-type="dojox.form.Uploader" 
    data-dojo-props=' 
     label:"Foo My Bar!", 
     url:"/tests/UploadFile.php", 
     uploadOnSelect:"true"'/> 
</center> 
<br> 
<div id="files" data-dojo-type="dojox.form.uploader.FileList" 
      data-dojo-props='uploaderId:"uploader"'></div> 

Но это не работает: классы виджетов не найдены. Я понимаю, что это происходит потому, что загрузчик находится в асинхронном режиме, и, по-видимому, парсер пытается отобразить виджеты до завершения вызовов.

Итак, вопрос в том, как это сделать должным образом? Если я назову требуемые вызовы на главной странице приложения, все будет работать (в том числе на виджетах, декларативно установленных на главной странице).

ответ

1

Кажется, что «dojox/form/Uploader» не загружен ... это требуется?

И вы можете анализировать содержимое в любое время, когда вы вызываете dojo.parser.parse. Если вы хотите выполнить первый синтаксический разбор кода, установите «parseOnLoad: false» в конфигурации dojo и вызовите «dojo.parser.parse (dojo.body())».

0

Вы пытались использовать dojox/layout/ContentPane вместо ContentPane в dijit? Тип ContentPane в dojox получен из одного в dijit, позволяя запускать код в динамическом контенте. Он также загружает необходимые ссылки на виджеты при разборе виджетов в содержимом.

1

Вы должны поместить в требуют все модули виджета вы ссылаетесь декларативно на странице:

require(["dojo/parser","dojox/form/Uploader","dojox/form/uploader/FileList"], 
    function(parser){ 
    parser.parse() 
}); 
Смежные вопросы