2015-04-07 8 views
5

Ich habe Seite mit Tabs (die sind tatsächlich Links von Parent pjax behandelt). Der lädt den Tab-Inhalt über Pjax-Aufrufe.Yii2 verschachtelte pjax

In einer der Registerkarten habe ich eine Gridview, die in einem Pjax-Container ist. Das macht es zu einem verschachtelten. Das Problem ist, dass die eine verschachtelte wenn es geladen und in die Seite eingefügt, nicht enthalten, es ist eigene JavaScript-d.h:

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

Antwort

0

Sie müssen renderAjax() rufen, wenn die Registerkarte (oder Inhalt) anfordert. Ich mache etwas in der Art:

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

Es kann jedoch nicht Ihr Problem beheben. Ich habe gefunden, wenn ich navigieren Tabs und ein Gitter wird dynamisch in der Registerkarte geladen (mit seinen eigenen Pjax-Container), dann versucht jede Interaktion mit Gitter sortieren und Filter aus dem äußeren (pjax Registerkarte) Container sogar mit skipOuterContainers eingestellt auf true.

Nebenbei bemerkt, die Entwickler denken darüber nach, pjax Unterstützung komplett zu löschen as per here sowie wie Asset-Bundles arbeiten.


Die Frage bleibt:

Wie superschnelle Leistung wie ein SPA (einzelne Seite app) erstellen ohne Angular2 oder ähnliches? Der Gittercontainer innerhalb eines Registerkartencontainers ist das perfekte Beispiel, das, wenn es möglich wäre ( Rück-/Vorwärts-Schaltflächen, Initialisierungsskripte), großartig wäre.

Verwandte Themen