Default count u vnořeného addDynamic

- Hafran
- Člen | 121
Zdravím, používám Replicator formulářových prvků:
public function __construct(\Nette\ComponentModel\IContainer $parent = NULL, $name = NULL) {
parent::__construct($parent, $name);
$removeEvent = callback($this, 'MyFormRemoveElementClicked');
$questions = $this->addDynamic('questions', function (Container $question) use ($removeEvent) {
$question->addText("question", "Question")->getControlPrototype()->class("input-small");
$question->addDynamic('answerChoices', function (Container $answerChoice) {
$answerChoice->addText('answerChoice', 'Choice')->getControlPrototype()->class("input-small");
}, 4);
$question->addText("answer", "Answer")->getControlPrototype()->class("input-small");
$question->addSubmit('remove', '-')
->setValidationScope(FALSE) # disables validation
->onClick[] = $removeEvent;
}, 1);
$questions->addSubmit('add', '+')
->setValidationScope(FALSE)
->onClick[] = callback($this, 'MyFormAddElementClicked');
}
Jde o otázky (které lze dynamicky přidávat, defaultně 1) a každá má 4 (defaultně nastaveno) možné odpovědi k vyplnění. První se vykreslí v pořádku, když dám však přidat další, tak se objeví, pouze nedynamická pole (question, answer) a vnořený kontejner (answerChoices) se vůbec nevykreslí – respektive vykreslí nula prvků. Pokud však přidám tlačítko na přidání dalšího prvku, tak se přidá v pořádku, ale já bych potřeboval, aby tam defaultně byly ty 4.
Neví někdo co s tím? :)
Editoval Hafran (11. 9. 2013 14:51)

- Hafran
- Člen | 121
Haha, tak jsem na to přišel, je o tom zmínka z nějakého důvodu jen v anglické dokumentaci – proměnná $forceDefault, která vymůže defaultní množství prvků. Tedy stačí přidat magické slovíčko true a je to :)
$question->addDynamic('answerChoices', function (Container $answerChoice) {
$answerChoice->addText('answerChoice', 'Choice')->getControlPrototype()->class("input-small");
}, 4, true);