invalidate control

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

Snažil jsem se zprovoznit odesílání formulářů přes ajax, odešle se request, který vyhodnotím, volám $this->invalidateControl(); Ve firebugu se mi jako odezva zobrazí toto:

{"state":{"cp-backlink":null}}

Když jsem zkoušel debugovat výstup z komponenty přes firephp, tak se vrací v pořádku, jenom (podle mě) není zneplatněná komponenta. V čem může být problém? Jak se to dá debugovat?

Jod
Člen | 701
+
0
-

skús dať do layoutu pred {include $content} zavináč. Takto @{include $content}

deric
Člen | 93
+
0
-

Jo, ten tam mám. Snažil jsem se to udělat podle fifteen, ale něco mi asi uniká.

v default.phtml mám:

{snippet cp}
     <div class="cp">
    @{? $cp->render() }
    </div>
{/snippet}

a jednotlivé subtemplate componenty jsou zabalené v {snippet}...{/snippet}. V metodě obsluhující ajaxovou událost mi Debug::fireLog($this->isControlInvalid('cp')); vrátí true

deric
Člen | 93
+
0
-

dělal jsem to podle tutoriálu https://doc.nette.org/…ication/ajax

a pochopil jsem to tak, že je potřeba přidat toto do layoutu…

<?php if ($control->isOutputAllowed()) { ?>
<html>
   ...
</html>
<?php } ?>

pak sem se podíval do tempu, že Nette to udělá samo. A když tam byla ta podmínka dvakrát, tak to nefungovalo :-/

PetrP
Člen | 587
+
0
-

deric napsal(a):
pak sem se podíval do tempu, že Nette to udělá samo. A když tam byla ta podmínka dvakrát, tak to nefungovalo :-/

njn to tam dáva curlyBrackets, možná by se to ale nemělo přidávat když už to tam je ručně.