Я разрабатываю одностраничное веб-приложение с Dojo 1.9.
Мы используем Dojo Parser для инициализации виджетов в фрагментах HTML, загружаемых с сервера в dojox.layout.ContentPane.
Прежде чем вставлять ContentPane на страницу, мы хотим дождаться, пока все виджеты полностью не завершат инициализацию.
Есть ли способ сделать это?
Я пытался добиться этого, ожидая обещания, возвращаемого ContentPane.content, но, похоже, это решается раньше.
var onParseEnd = pane.set("content", htmlText);
Я думаю, что onParseEnd разрешается сразу после того, как парсер «проанализирует» содержимое HTML, а не после завершения всех инициализаций виджета.
require (["dojo/parser"], function ( parser ){ parser.parse( html_fragment ).then(onComplete_Callback);});
- person frank   schedule 15.04.2015onLoadDeferred
ожидает только загрузки самого содержимого (в случае установкиhref
, а неcontent
) и запускаparse
(в случае, если потребуются какие-либо новые модули). Разрешение не задерживается для выполнения сценария, разрешенногоdojox/layout/ContentPane
(фактически обрабатываемогоdojox/html/_base
). В идеале предпочтительно организовывать JavaScript в модули и шаблонные виджеты по мере необходимости, чтобы ваш код был хорошо организован и вы не попадали во власть свободных скриптов, оцениваемых как часть смешанного контента. - person Ken Franqueiro   schedule 16.04.2015