controllers¶
I controller sono elementi dinamici di business logic a eventi che si attivano e vengono eseguiti a fronte di:
alcuni cambiamenti sul datastore se hanno parametri contenenti un triggering_path ovvero un path prefissato da
^
eventi propagati da una publish (
genro.publish()
) se il controller ha il corrispondente parametrosubscribe_
Vediamo prima un esempio con:
Vediamo adesso la stessa cosa con:
Suggerimento
Da una recente release di luglio 2021 è diventato possibile collegare direttamente qualsiasi controller a un button o menuline. L’innesco avverrà automaticamente al clic sul bottone o linea di menu, senza quindi la necessità di utilizzare il meccanismo publish/subscribe o l’attributo fired_
.
Parametri:
Nome parametro |
Tipo |
Descrizione |
---|---|---|
_class |
T |
Permette di assegnare una specifica classe CSS al widget |
height |
T |
Permette di assegnare un’altezza al widget |
width |
T |
Permette di assegnare una larghezza al widget |
border |
T |
Permette di assegnare un bordo al widget |
rounded |
L |
Permette di assegnare un arrotondamento al widget |
style |
T |
Permette di assegnare uno stile (da esprimersi come serie di attributi CSS) al widget |
background |
T |
Permette di assegnare uno sfondo al widget |
Controllers Parametri |
||
_delay |
T |
Il ritardo (in ms) tra l’evento trigger e l’esecuzione del controller |
_onStart |
B |
Se impostato a True, il controller verrà lanciato al caricamento della pagina. Può anche contenere un valore numerico (es: _onStart=500), in quel caso verrà impostato un ritardo (in ms) prima di avviare la chiamata. |
subscribe_ |
T |
|
_ask |
T |
Permette di identificare in un dizionario i parametri da richiedere all’utente alla pressione del bottone, che verranno poi utilizzati nell’azione (es. _ask=dict(title=”Test”,fields=[di ct(name=”msg”,lbl=”Message”)])) |
_if |
T |
Espressione javascript che permette di condizionare l’avvio del controller alla presenza di un valore (es: _if=”value”) |
_else |
T |
Frammento di codice javascript che completa _if, indicando un altro comportamento da seguire qualora _if fosse falsa |
_userChanges |
T |
Se impostato a «True» fa scattare il controller solo in caso di modifiche al record |