Problém v dynamických komponentách při odesílání formuláře

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

Zdravím vás, potřeboval bych poradit s voláním dynamických komponent.
Vše se vykresluje správně, avšak při odeslání například z vytvořené komponenty formuláře systém nemůže danou komponentu najít.. Prosím o pomoc co s tím jak to vyřešit, jsem v nouzi.
Děkuji za jakékoliv rady.

přímá chyba
The signal receiver component ‚settingAccount-settingGroup-userChangePassword-userChangePasswordForm‘ is not found.

Zde volám komponentu s daty komponent
settingAccountControl.latte

{control settingGroup, $name, $components, $settings}

Komponenta settingGroup vypadá takto

settingGroupControl.php

namespace App\Components;

use Nette\Application\UI;

class settingGroupControl extends UI\Control
{
    public function render($name, $components, $settings)
    {
        $this->template->setFile(__DIR__ . '/settingGroupControl.latte');
        $this->template->name       = $name;

        foreach($components as $item) {
            $this->addComponent($item['component'], $item['componentName']);
        }

        $this->template->settings   = $settings;
        $this->template->render();
    }

}

settingGroupControl.latte

<ul id="settingGroup" class="w1-1 tm setting-group-items tm">
    <h2 class='w1-1b'><span>{$name}</span></h2>
    {foreach $settings as $item}
        <li class='w1-1b'>
            <div class='w1-1'>
                <div class='w1-5 name'><span>{$item['name']}</span></div>
                <div class='w3-5 info'><span>{$item['info']}</span></div>
                {if $item['componentName']}
                    <div class='w1-5'>
                        <span class='setting-edit fr' data-sett='name'><i class="i-edit_b24"></i><span>Upravit</span></span>
                        <span class='setting-cancel fr'><span>Zrušit</span></span>
                    </div>
                {/if}
            </div>
            {if $item['componentName']}
                <div class="w1-1 edit">
                    <div class="w1-2b fr">
                        {control $item['componentName']}
                    </div>
                </div>
            {/if}
        </li>
    {/foreach}
</ul>

Editoval Wailey (19. 1. 2016 3:41)

Zax
Člen | 370
+
+2
-

To bude podle mě tím, že tam voláš addComponent v render metodě, při odesílání formuláře se render nevolá, proto komponenta neexistuje. Řešením by bylo předávat si tyhle závislosti ne do renderu, ale konstruktorem už v továrničce při vyrábění.

Wailey
Člen | 48
+
0
-

S tímto moc zkušenosti nemám, mohl bych poprosit, jak by to mělo vypadat? Moc děkuji :)
Edit: Vyřešeno, děkuji za nakopnutí :)

Editoval Wailey (20. 1. 2016 23:22)