Collezioni di figli vivi XFA
Gli eventi JavaScript e FormCalc possono esaminare i nodi figli correnti di un nodo di modulo o di proprietà attraverso la sua proprietà nodes di sola lettura
const field = xfa.resolveNode("row[1].amount");
const children = field.font.nodes;
const snapshot = children.clone();
field.font.fill.color.value = "192,48,96";
const fill = children.item(0);
Lettura dei figli correnti
| Membro | Comportamento |
|---|---|
length | Numero corrente di nodi figli |
item(index) | Figlio corrente a quell'indice a base zero, o null per un indice negativo, non intero o fuori intervallo |
namedItem(name) | Primo figlio corrente con quel nome letterale, o null quando nessun figlio corrisponde |
nodes[index] | Lo stesso nodo corrente di item(index) |
for...of | Legge i nodi figli nel loro ordine corrente |
clone() | Crea una lista di query indipendente che referenzia i figli correnti |
La collezione risolve il suo proprietario attraverso il grafo di eventi corrente a ogni lettura, inclusa una collezione trattenuta da un oggetto script attraverso gli eventi
Le collezioni esistenti riflettono aggiunte e rimozioni di istanze ripetute e creazione implicita di proprietà; le istanze ripetute separate conservano figli di proprietà e valori separati
Una collezione trattenuta il cui proprietario è stato rimosso solleva un errore invece di puntare a un'istanza sopravvissuta o di sostituzione
Accesso da FormCalc
FormCalc riconosce nodes come una proprietà di collezione di figli su nodi di modulo, di proprietà e del Data DOM
if (xfa.record.nodes.length >= 2) then
xfa.record.nodes.item(1).nodes.namedItem("amount").rawValue = "Updated"
endif
Le catene di membri dirette di length, item(index), namedItem(name) e clone() usano gli stessi nodi nativi correnti e i limiti di collezione di JavaScript
Le collezioni di figli di moduli, proprietà e Data DOM supportano letture dirette di nodes[index] sia in JavaScript sia in FormCalc
Gli indici delle collezioni sono a base zero; for...of resta sintassi JavaScript
Le scritture attraverso un riferimento di collezione FormCalc aggiornano il valore dati associato effettivo e conservano l'isolamento delle istanze ripetute; i valori confermati sopravvivono al salvataggio XDP, al ricaricamento del runtime e alla generazione nativa delle appearance PDF
Indici numerici del Data DOM
const rows = xfa.record.nodes;
rows[1].nodes[0].rawValue = "Updated";
Le chiavi intere canoniche non negative come "0" e "1" risolvono il figlio corrente del Data DOM e restituiscono null fuori dalla collezione; le chiavi non canoniche come "01", "-0" e "1.0" non sono alias delle voci numeriche
Il index in nodes JavaScript verifica il conteggio corrente dei figli, e l'assegnazione diretta, l'eliminazione o la ridefinizione di una voce numerica canonica solleva TypeError
Le stesse restrizioni delle voci numeriche si applicano dentro una funzione di oggetto script che trattiene la collezione nello stato lessicale, così come quando un altro evento legge una collezione restituita da quella funzione
Usare i metodi strutturali esistenti del Data DOM per riordinare o rimuovere i figli; una collezione trattenuta da un oggetto script legge il grafo di eventi corrente dopo ogni modifica confermata e dopo il rollback
Cloni indipendenti
Una lista di figli clonata usa l'archiviazione indipendente descritta in Collezioni di nodi di query XFA; i suoi metodi append, insert e remove cambiano quell'archiviazione indipendente
Scrivere un nodo referenziato da una delle due liste cambia il nodo nativo effettivo, e i valori confermati e le sovrascritture delle proprietà persistono attraverso l'XDP salvato e la generazione nativa delle appearance PDF
Le collezioni di figli del Data DOM forniscono anche clone() con archiviazione di voci indipendente; i loro esistenti metodi strutturali append, insert e remove continuano a mutare l'albero dati nativo
Transazioni e limiti
Gli oggetti di collezione vivi e i cloni indipendenti condividono i limiti di allocazione delle collezioni dell'evento, le verifiche delle operazioni e la scadenza della transazione
Un errore di evento non intercettato o un fallimento di budget ripristina insieme i valori nativi, le istanze ripetute, lo stato script trattenuto, l'archiviazione delle liste indipendenti e lo stato del journal
Le collezioni vive di moduli e proprietà sono di sola lettura; assegnazione diretta, eliminazione, ridefinizione di proprietà, cambi del prototipo e impedimento delle estensioni sollevano un errore
Le collezioni del Data DOM rifiutano la scrittura, l'eliminazione e la ridefinizione delle voci numeriche canoniche conservando i loro esistenti metodi strutturali nominati e il comportamento ordinario delle proprietà non numeriche
Copertura
Questa interfaccia espone collezioni di figli correnti di moduli e proprietà e cloni indipendenti di liste di figli
La creazione generale di nodi di template/modulo, la clonazione ricorsiva dei nodi, l'inserimento e la rimozione di alberi di figli e binding aggiuntivi di classi di nodi restano lavoro separato
Struttura transazionale del Data DOM XFA · Runtime dei widget XFA