2016-09-09 4 views
0

В настоящее время я загружаю части своего сайта с помощью ajax (jquery 1.x в приложении ZF2), который работает красиво, пока я не загружаю который имеет зависимые файлы javascript/css, объявленные в заголовке этого представления. Объявление setTerminal(true) в ViewModel возвращает только часть содержимого представления, поэтому любые файлы, $this->inlineScript()->appendFile() и $this->headLink()->appendStylesheet() не включены.ZF2 - включая файлы заголовков при загрузке изображения с помощью ajax/setTerminal (true)

Это означает, что, пока контент правильно загружен через ajax, он не работает, если есть дополнительные скрипты, которые необходимо использовать в этом представлении.

Есть ли способ включить эти файлы так или иначе, чтобы работа с запросом на ajax работала?

В качестве примера: Скажем, я разрабатываю панель управления, которая использует ajax для извлечения данных из нескольких разных контроллеров, таких как информация о пользователе, информация о подписке и т. Д. На панели мониторинга я могу просто включить все файлы javascript/css, которые определены в представлениях «Пользователь» и «Подписка», но, конечно же, это просто загрязняет представление Dashboard большим количеством файлов js/css? Должен быть лучший способ.

ответ

0

Если вы загружаете части страницы с помощью ajax, то есть непосредственно частей html, ваши частичные шаблоны не должны содержать <head>. Даже если у него есть один (не уверен), так как ваша главная страница уже имеет управляемый <head>, частичные действия не будут иметь никакого эффекта.

Поэтому не используйте $this->headScript() и $this->headLink() помощников. И даже если вы включите свой скрипт beetwen <script> теги, ваш код будет вставлен в DOM, но он не будет интерпретирован. Для этого прочитайте это other question.

+0

Спасибо за ответ. У моих партикулов нет разделов , но они содержат '$ this-> headScript() -> appendFile' и т. Д. Для загрузки js и css, специфичных для просмотра, которые необходимы для взаимодействия с элементами, созданными в представлении. Они необходимы, когда запрашивается страница без XHR. Для запросов ajax, я получаю лучшие результаты с '' .getScript 'jquery' после успеха вызова ajax и ввода в DOM. Использование eval - это плохой выбор, которого я бы предпочел избежать. –

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