Ajax И Виджеты С Css/js

Всем привет

столкнулся с задачей когда весь контент админки целиком и полностью загружается через ajax и не могу использовать виджеты

тк большая их часть вставляет в head или перед закрытием body свои скрипты/стили

а вьюшки рендерятся через renderPartial, тк ajax.

есть ли какое решение как принудительно заставить виджет рендерить стили во вьюшку ?

Понимаете, не виджеты вставляют нужный им код в head или перед закрытием body. Виджеты говорят компоненту ClientScript какие JS файлы и какой JS код надо подключить к странице, и при рендере этот компонент включает нужные стили и скрипты. Вот как хитро.

renderPartial не "рендерит" скрипты, наверное потому, что на странице может быть несколько вызовов renderPartial и если бы каждый рендерил скрипты, было бы дублирование.

Но если вы не вызываете render, только renderPartial и скрипты нужны, то укажите 4-й параметр:


$this->renderPartial('page', $params, false, true);

Или же вызывайте render с опцией (‘layout’=>false) будет тот же результат.

Но каждый виджет подключает также jQuery библиотеку, так что каждый AJAX запрос будет притягивать jQuery и будет бардак на странице, например биндинги послетают.

Я вообще правильно понял ваш вопрос?

Если что, то так я очищал подключение ненужных мне jQuery и скриптов: гист

Таким образом я добивался, что каждый AJAX запрос приносил HTML данные и JS код который я же и писал. А все JS для виджетов, я подгружал сразу на страницу. Т.е. если AJAX’ом может подгрузить поле ввода, которое будет datapicker’ом, то я заранее подключал нужный скрипт.

Да, примерно правильно поняли.

Понял в каком направлении двигаться, спасибо !