Infinite scroll pomocou nette.ajax nefunguje

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

Zdravím, prešiel som viacerými témami na fóre, skúšal čo sa dalo, ale neviem na to príjsť. Snažim sa spraviť infinite scroll. Takže zjednodušená verzia mojho prípadu vyzerá takto:
Presenter:

public function actionDefault()
{
	$this->template->users = $this->usersModel->getUsers()->limit(1,0);
}

public function handleGetMore()
{
	if ($this->isAjax()) {
		$this->template->users = $this->usersModel->getUsers()->limit(1,1);
		$this->redrawControl('test');
	}
}

šablona:

<a n:href="getMore!" class="ajax">get more</a>
<div n:snippet="test" data-ajax-append="true">
	{foreach users as $user}
		<p>{$user->wateva}</p>
	{/foreach}
</div>

Pred kliknutím na link:

User 1

Po kliknutí:
Vykoná sa append v nette.ajax.js

User 2
User 2

Používam:

Nette 2.1.0
nette.ajax.js (https://github.com/vojtech-dobes/nette.ajax.js)

Ako to riešite, alebo kde robím chybu? Bol by som vďačny aj @vojtech.dobes keby mi s tým pomohol :)

Majkl578
Moderator | 1364
+
0
-

Budeš si v getMore signálu muset předávat ještě offset, abys věděl, kolikátý záznam chceš vykreslit. A zároveň při každém donačtení přenačítat i ten odkaz „get more“ (nejsnáze udělat z něj taky snippet).

David Matějka
Moderator | 6445
+
0
-

@Majkl578: to nebude hlavni problem :)

Chapu dobre, ze po kliknuti na „get more“ se ti v tom seznamu prepise i ta prvni polozka, jo? Zkousel jsem tvuj priklad a funguje mi bez problemu..

erzzo
Člen | 49
+
0
-

@Majkl578: Neviem či ťa dobre chápem ale… zatial mam ten offset na pevno nasteveny a mi to nefunguje pri prvom vykonani getMore().

@matej21: Ano presne, prepise sa mi aj tá prvá položka. Ak to tebe ide tak by to mohlo aj mne ísť.. len kde bude chyba

erzzo
Člen | 49
+
0
-

@matej21 maš pravdu, spravil som si zvlašť nette projekt na skušku a tam mi to ide… niečo sa mi tam bude miešať

erzzo
Člen | 49
+
0
-

Okej miešalo sa mi to z nejakým iným JS čo pracovalo tiež s ajaxom… problem solved. Diki