Omezení akvizice na vlastnosti
Předpokládejme, že návrh prezentace, ze které je uvedený fragment šablony, počítá s možností, že některým sekcím je možné nastavit vlastnost s názvem colors
, jejíž hodnotou bude název třídy, která je v CSS použitá pro definici barevného schématu. Chceme, aby se nastavení hodnoty dědilo, a aby ho bylo možné libovolně předefinovat.
V šabloně obsahující počáteční tag HTML elementu body
je potřeba získat aktuální hodnotu colors
.
Obojí zápis bude většinou fungovat požadovaným způsobem. Rozdíly jsou ale významné:
- Explicitní uvedení vlastnosti vede k tomu, že se v každém kroku hledání ve stromu sekcí eliminuje dotaz na dětské assety s názvem
colors
acolors_cz
. - Zápis s vykřičníkem může někdy skutečně najít asset s názvem
colors
, což pravděpodobně úplně rozbije výpis.
(Pro jednoduchost předpokládáme, že typ assetu _primary
nedefinuje atribut colors
.)
Fragmenty kódu
Zápis s vykřičníkem
<body class="{_primary!colors}">
...
</body>
Zápis s explicitním omezením na vlastnosti
<body class="{acquire(_primary, "colors", "p")}">
...
</body>