2015-04-07 3 views
5

У меня есть страница с вкладками (которые на самом деле связаны с обработчиком родительского pjax). Которая загружает содержимое вкладки через вызовы pjax.Yii2 вложен pjax

В одном из вкладок у меня есть сетка, которая находится внутри контейнера pjax. Это делает его вложенным. Проблемы заключается в том, что вложенная один, когда загружено и вставляются в страницу, не включает в своем собственном Javascript т.й:

jQuery(document).pjax("#history-gridview a", "#history-pjax", {"push":true,"replace":false,"timeout":5000,"scrollTo":false}); 

ответ

0

Вы должны вызвать renderAjax() при запросе страницы вкладки (или содержания). Я делаю что-то вроде этого:

if (Yii::$app->request->isAjax) return $this->renderAjax('myview'); 
else return $this->render('myview'); 

Однако, это может не решить вашу проблему. Я обнаружил, что если я перемещаю вкладки и сетка загружается динамически на вкладке (со своим собственным контейнером pjax), то любое взаимодействие с сеткой сетки и фильтра пытается перезагрузить из внешнего (pjax tab) контейнера, даже с skipOuterContainers установлен на true.

На стороне примечания разработчики думают о полной поддержке pjax as per here, а также о том, как работают пакеты активов.


остается вопрос:

Как создать супер высокую производительность, как в SPA (одно приложение страницы) без Angular2 или подобное? Контейнер сетки в контейнере таблеток - прекрасный пример, который, если бы он был достигнут (питание для кнопок , кнопки инициализации) было бы удивительным.

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