You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Je důležité pamatovat na to, abychom jmenný prostor nastavili vždy na všech místech patřících do dané části. Pakliže používáme [presentery |presenters], nastavíme jmenný prostor ve společném předkovi pro danou část - obvykle BasePresenter. Učiníme tak rozšířením metody [checkRequirements() |api:Nette\Application\UI\Presenter::checkRequirements()]:
Copy file name to clipboardExpand all lines: cs/ajax.texy
+7-7Lines changed: 7 additions & 7 deletions
Original file line number
Diff line number
Diff line change
@@ -19,7 +19,7 @@ Nette neobsahuje implementaci AJAX požadavků na straně klienta. Doporučujeme
19
19
Pro odesílání dat prohlížeči ve formátu JSON lze využít předpřipravený objekt `payload`:
20
20
21
21
/--php
22
-
public function actionDelete(int $id)
22
+
public function actionDelete(int $id): void
23
23
{
24
24
if ($this->isAjax()) {
25
25
$this->payload->message = 'Success';
@@ -37,7 +37,7 @@ Pokud potřebujete plnou kontrolu nad odeslaným JSONem, použijte v presenteru
37
37
Když chceme odeslat HTML, můžeme jednak zvolit speciální šablonu pro AJAX:
38
38
39
39
/--php
40
-
public function handleClick($param)
40
+
public function handleClick($param): void
41
41
{
42
42
if ($this->isAjax()) {
43
43
$this->template->setFile('path/to/ajax.latte');
@@ -57,7 +57,7 @@ Invalidace
57
57
Každý objekt třídy [Control |components] (což je i samotný Presenter) si umí zapamatovat, jestli při subrequestu došlo ke změnám, které si vyžadují jej překreslit. K tomu slouží dvojice metod `redrawControl()` a `isControlInvalid()`. Příklad:
58
58
59
59
/--php
60
-
public function handleLogin(string $user)
60
+
public function handleLogin(string $user): void
61
61
{
62
62
// po přihlášení uživatele se musí objekt překreslit
63
63
$this->redrawControl();
@@ -146,14 +146,14 @@ class HomepagePresenter extends Nette\Application\UI\Presenter
146
146
];
147
147
}
148
148
149
-
public function renderDefault()
149
+
public function renderDefault(): void
150
150
{
151
151
if (!isset($this->template->list)) {
152
152
$this->template->list = $this->getTheWholeList();
153
153
}
154
154
}
155
155
156
-
public function handleUpdate(int $id)
156
+
public function handleUpdate(int $id): void
157
157
{
158
158
$this->template->list = $this->isAjax()
159
159
? []
@@ -210,7 +210,7 @@ V takovém případě je nejjednodušší celý ten seznam obalit ještě jední
210
210
\--
211
211
212
212
/--php
213
-
public function handleAdd()
213
+
public function handleAdd(): void
214
214
{
215
215
$this->template->list = $this->getTheWholeList();
216
216
$this->template->list[] = 'New one';
@@ -239,7 +239,7 @@ $.getJSON(
239
239
A handle metoda s odpovídajícími parametry v komponentě.
240
240
241
241
/--php
242
-
public function handleChangeCountBasket(int $id, int $count)
242
+
public function handleChangeCountBasket(int $id, int $count): void
Copy file name to clipboardExpand all lines: cs/components.texy
+5-5Lines changed: 5 additions & 5 deletions
Original file line number
Diff line number
Diff line change
@@ -34,7 +34,7 @@ Bavíme-li se o komponentách, obvykle myslíme potomky třídy [Control |api:Ne
34
34
Komponenta obsahuje továrnu na svou [šablonu |latte:]. Ta standardně vytvoří šablonu, předá ji některé základní proměnné a zaregistruje [standardní filtry |latte:filters]. O vykreslení se už musíme postarat sami, a to v metodě `render()`. Tam také musíme určit soubor, ze kterého bude šablona načtena, a zaregistrovat proměnné, které se budou v šabloně používat. Šablonu můžeme umístit do stejné složky a pod stejným názvem jako komponentu:
35
35
36
36
/--php
37
-
public function render()
37
+
public function render(): void
38
38
{
39
39
// vložíme do šablony nějaké parametry
40
40
$this->template->param = $value;
@@ -84,7 +84,7 @@ Zasílání obstarává metoda [flashMessage |api:Nette\Application\UI\Control::
84
84
85
85
Příklad:
86
86
/--php
87
-
public function deleteFormSubmitted(Nette\Application\UI\Form $form)
87
+
public function deleteFormSubmitted(Nette\Application\UI\Form $form): void
88
88
{
89
89
// ... požádáme model o smazání záznamu ...
90
90
@@ -120,7 +120,7 @@ Jinými slovy: vezme se definice funkce `handle{signal}` a všechny parametry, k
120
120
Ukázka zpracování signálu:
121
121
122
122
/--php
123
-
public function handleClick(int $x, int $y)
123
+
public function handleClick(int $x, int $y): void
124
124
{
125
125
if (!$this->isClickable($x, $y)) {
126
126
throw new Nette\Application\UI\BadSignalException('Action not allowed.');
@@ -218,7 +218,7 @@ class PollControl extends Control
218
218
$this->pollId = $pollId;
219
219
}
220
220
221
-
public function handleVote(int $voteId)
221
+
public function handleVote(int $voteId): void
222
222
{
223
223
$this->pollManager->vote($pollId, $voteId);
224
224
//...
@@ -413,7 +413,7 @@ class UploadControl extends Nette\Forms\Controls\BaseControl
413
413
{
414
414
public function __construct($label)
415
415
{
416
-
$this->monitor(Nette\Forms\Form::class, function ($form) {
416
+
$this->monitor(Nette\Forms\Form::class, function ($form): void {
0 commit comments