it-swarm.dev

È possibile utilizzare un gruppo di ripetizione per scorrere su un elenco separato da spazi?

So che i gruppi ripetuti possono operare in diversi modi:

  1. Con un conteggio delle ripetizioni fisso (il conteggio delle ripetizioni è un numero intero caricato da una variabile nascosta)
  2. Con un gruppo di ripetizione non specificato (il gruppo di ripetizione continua fino a quando il lavoratore mobile decide di uscire dal ciclo)
  3. Con una query ID Iterazione modello (ho visto questo usato principalmente per iterare i casi recuperati dal casedb)

Esiste una quarta opzione che ti consente di scorrere su un elenco di elementi separato da spazi e accedere a ciascun elemento successivo come variabile nascosta all'interno del gruppo di ripetizione?

2
Jessica Long

Un gruppo di ripetizione è in grado di scorrere su un elenco separato da spazi con una query Iterazione modello, ma come qualsiasi autoespansione del gruppo di ripetizione, ciò può verificarsi solo su un insieme di valori che è fisso quando il modulo si apre .

Ciò significa che l'elenco non può essere determinato dall'input dell'utente nel modulo, a meno che non segua il modello in cui la ripetizione contiene una voce per ogni selezione possibile e utilizza le Condizioni di visualizzazione attorno a un gruppo interno per nascondere gli elementi che non sono stati scelti.

Con queste avvertenze: puoi effettivamente realizzarlo in modo abbastanza semplice, fornendo il percorso all'elenco separato da spazi come query di Iterazione del modello stesso. Le iterazioni del modello in realtà operano internamente su un elenco separato da spazi che generano eseguendo a

join(' ', instance('something')/your/iteration/query)

operazione sul tuo input. Pertanto, se si fornisce una query con un solo elemento, il join restituirà semplicemente l'elenco separato da spazi e procederà come al solito!

EDIT: Hai dimenticato di menzionare - se stai per utilizzare questo metodo e fare riferimento a una domanda all'interno del modulo (piuttosto che un'istanza come nel mio esempio), deve:

  • Puoi impostarlo usando un valore predefinito, non un calcolo
  • Deve venire prima il ciclo di iterazione del modello.
3
Clayton Sims

Potrebbe avere più senso usare solo un gruppo di ripetizione regolare senza iterazione del modello. È possibile rendere il conteggio delle ripetizioni uguale al numero di parole nell'elenco separato da spazi e quindi caricare l'ennesima parola in ciascuna ripetizione. Questa strategia funzionerebbe anche se la tua lista è calcolata all'interno del modulo.

Per calcolare il numero di parole, utilizzare la funzione count-selected(). Per ottenere l'n-esima parola, utilizzare la funzione selected-at().

2
Jennifer