Invalidace snippetu v komponente s predavanym parametrem

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

Ahoj,

mam vytvorenou tabulku, kde kazdy radek je jedna komponenta row, do komponenty row predavam data pro jednotlive bunky

<table>
 <tbody>
  {foreach $orders as $order}
   {control row-$order->orderId, $order}
  {/foreach}
 </tbody>
</table>

Problem nastava, kdyz chci invalidovat po odeslani formulare konkretni radek ajaxem, tak mi ladenka vypise chybu

Missing argument 1 for App\Components\Row::render()

Render metoda row komponenty

	public function render($order)
	{
		$this->template->order = $order;

		$this->template->setFile(__DIR__ . "/row.latte");
		$this->template->render();
	}

Nasel jsem tohle to tema, ktere popisuje muj problem, jenze je dost stare, takze netusim jestli problem s timto resenim je stale aktualni a hlavne se mi nepodarilo docist, jestli problem jde nejakym zpusobem obejit.

David Matějka
Moderator | 6445
+
+1
-

nepredavej parametr do metody render, predej to komponente v tovarne

ali
Člen | 342
+
0
-

Mas na mysli takhle v sablone? {$presenter[row][$order->orderId]->setRow($order)}

David Matějka
Moderator | 6445
+
0
-

ne, v tovarne v presenteru

David Matějka
Moderator | 6445
+
0
-

Asi pouzivas multiplier, takze treba takhle:

protected function createComponentRow()
{
	return new Multiplier(function($id) {
		return new Row($this->getOrder($id));
	});
}
ali
Člen | 342
+
0
-

Jej, to me nenapadlo, dik.

newPOPE
Člen | 648
+
0
-

Toto je zapeklity problem a velmi casto ma vytaca. Lebo to iste sa objavi aj pri {control foo:bar} kde sa zavola ::render. Echt :/