Předání persistentních parametrů control i při {plink}
- Blizzy
- Člen | 149
Mám control, který má určitý persistentní parametr, ten se normálně předává při všech akcích, které dělám s controlem. Pokud potřebuji udělat nějaký takovýto signál, použiju v šabloně control {link}.
Pokud ale potřebuju z control poslat signál na presenter, použiju {plink}. Odkazem na presenter {plink} se mi ale už nepředá ten persistentní parametr controlu. Jak ho předat i v presenteru?
Uvedu konkrétní příklad:
Mám control, který slouží k procházení složek a vypisuje obrázky ve
složce do tabulky. Jeho persistentní parametr je aktuální adresář
(relativní cesta), ve kterém se nachází. Tento control se používá pro
procházení složek a přiřazování obrázků k produktům. U každého
obrázku control zobrazí odkaz „Přiřadit“, což je {plink} na akci
presenteru, v té je obrázek přiřazen k produktu a provede se redirect na
původní view s controlem pro výběr obrázků. Tady se ale control
nenachází v poslední složce, protože nebyl zachován jeho parametr, který
určuje aktuální adresář.
- Blizzy
- Člen | 149
vlki napsal(a):
Nestačilo by posunout ten persistentní parametr na vyšší úroveň – tedy do presenteru? S tím, že by jsi k němu z controlu přistupoval pomocí
$this->presenter->var
? Automaticky by se měl převádět pořád. I když posíláš signály jen uvnitř controlu.
Díky, tohle řešení funguje. Divné, že mě to nenapadlo. Přidal jsem to do všech presenterů, které pracují s danou control, pak stačilo pár search&replace a už to funguje.
- PetrP
- Člen | 587
persistentní parametri componenty se přenášejí při signálech presenteru.
Pokuď je chceš přenášet i při akcích, případně i přes několik presenterů tak musíš komponentu označit jako persistentní
(Myslím že to správně funguje až ve verzi 0.9)
Jinak když nemužeš/necheš použít anotace tak si překryj detekční metodu