Kdyby\Events – různé akce při jedné události
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- bluray
- Člen | 178
Dobrý den, mám komponentu která mi reprezentuje tabulku. Dostává pole
dat a zobrazuje ho v tabulce. Na nadpisy sloupečků lze klikat a při
kliknutí vznikne událost, při které chci nastavit tabulce nová data
seřazená podle toho sloupečku. Problém je v tom, že tabulka neví odkud se
data berou, jestli to je ArticleRepository, GalleryRepository…takže listener
neví jak data seřadit. Nevím jakou třídu repository do Listeneru vložit.
Asi to řeším špatně. Poradil by mi někdo?
Zde je náhled kodu:
class Table extends Control{
private $data;
private $onClick = [];
public function setData(array $data){
$this->data = $data;
}
public function handleClickColumn($column){
$this->onClick($this, $column);
}
}
class TableListener extends Subscriber{
private $repository;
public function __construct(IRepository $repository){
$this->repository = $repository;
}
public function getSubscribedEvents() {
return ["Table::onClick" => 'sortByColumn'];
}
public function sortByColumn(Table $table, $column){
$table->data = $this->repository->getDataSortBy($column);
}
}