vytvořit komponentu 1× a odkazovat se na její signál z presenteru, nebo 50× a z její šablony?

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

Ahoj,

zajímalo by mě, který přístup je lepší z hlediska návrhu s komponentami. Pro příklad použijme košík, který si ukládáme do session, kterou obstarává samostatná komponenta. V presenteru si komponentu buď vytvořím pro každý produkt, s tím že v šabloně komponenty mám tlačítko volající její signál „přidat do košíku“. To by ale znamenalo, že pro každý produkt na stránce se vytvoří nová komponenta.

Moje otázka tedy je, zda je lepší vytvořit oněx xxx totožných komponent, které si každá budou držet své id produktu, nebo mít jen jednu instanci komponenty a odkazovat se na její signál z šablony presenteru?
Jak na to v takovém případě – pomocí action?

Díky za jakékoliv poznámky :)

Ani
Člen | 226
+
0
-

Můžeš jí předat prametr (id) do metody render. Ale může to dělat problém při AJAXu.

Komponenta

<?php
public function renderLink($id){
	echo html::el('a')->href($this->link('addToChart!', $id))->html('add to chart');
}

public function handleAddToChart($id){

}

?>

Šablona presenteru

{control chart:link $id}

Editoval Ani (21. 1. 2012 15:58)