Jak vratit HTML pri volani handle ajaxem?

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
flexroad
Člen | 117
+
0
-

Ahoj,

ajaxem volam neco jako „/xxx/page/2“.

Pokud stranku http://neco.com/xxx/page/2 otevru v prohlizeci (bez ajaxoveho volani), vidim obsah nacteny ze sablony, coz je to co potrebuji.

Pokud ale akci zavolam ajaxem, vrati mi to {„state“:[]}, coz nechci. Jak docilit toho, aby mi nize uvedena funkce vratila HTML obsah sablony page.latte misto toho „state“ jsonu?

public function actionPage($id)
{
    if ($this->isAjax()) {
			//nacti latte sablonu a vrat jeji html obsah
    }
}

Diky za cokoliv!

@flexroad

flexroad
Člen | 117
+
+1
-

Tak si odpovim…

poresil jsem to nejak takto:

public function actionPage($page)
{
    if ($this->isAjax()) {
        $latte = new Engine();
        $parameters = array('records'=>[1,2,3]);
        $latte->render(__DIR__ . '/../templates/Home/page.latte', $parameters);
        exit();
    }else{
        $this->redirect(':News:Home:');
    }
}
David Matějka
Moderator | 6445
+
+1
-
flexroad
Člen | 117
+
0
-

@DavidMatějka : Snippety pouzivam prakticky bezne…

Tady toto je ale mnohem nejjednodussi implementace pro infinitescroll.js ;)

David Matějka
Moderator | 6445
+
+1
-

s nette.ajax.js jde infinite scroll udelat snadno :) https://github.com/…ette.ajax.js#…

flexroad
Člen | 117
+
0
-

@DavidMatějka: To vypada pekne. Jen mezi tim jeste potrebuju cely vysledek toho volani napojit na nejaky javascript… V tomto pripade na packery.js(isotope), aby se mi to pekne animovalo. A s tim si popravde nevim rady, pokud to nevrati HTML.