XFA Live Child Collections
JavaScript- och FormCalc-händelser kan inspektera aktuell barnnoder på en formulärnod eller egenskapsnod genom dess skrivskyddade nodes egenskap
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);
Läsa aktuella barn
| Member | Beteende |
|---|---|
length | Aktuellt antal barnnoder |
item(index) | Aktuellt barn på det nollbaserade indexet, eller null för ett negativt, icke-heltals- eller utanför-intervallet-index |
namedItem(name) | Första aktuella barn med det literala namnet, eller null när inget barn matchar |
nodes[index] | Samma aktuella nod som item(index) |
for...of | Läs barnnoder i sin aktuella ordning |
clone() | Skapa en oberoende frågelista som refererar aktuella barn |
Kollektionen löser sin ägare genom den aktuella händelsegrafen vid varje läsning, inklusive en kollektion behållen av ett skriptobjekt över händelser
Befintliga kollektioner speglar upprepningsinstans-tillägg och borttagningar samt implicit egenskapsskapande; separata upprepade instanser behåller separata egenskapsbarn och värden
En behållen kollektion vars ägare togs bort kastar ett fel i stället för att rikta mot en överlevande eller ersatt instans
FormCalc-åtkomst
FormCalc känner igen nodes som en barnkollektionsegenskap på formulär-, egenskaps- och Data DOM-noder
if (xfa.record.nodes.length >= 2) then
xfa.record.nodes.item(1).nodes.namedItem("amount").rawValue = "Updated"
endif
Direkta length, item(index), namedItem(name)och clone() medlemskedjor använder samma aktuella nativa noder och kollektionsgränser som JavaScript
Formulär-, egenskaps- och Data DOM-barnkollektioner stödjer direkta nodes[index]-läsningar i både JavaScript och FormCalc
Kollektionsindex är nollbaserade; for...of förblir JavaScript-syntax
Skrivningar via en FormCalc-kollektionsreferens uppdaterar det faktiska bundna datavärdet och behåller upprepningsinstansisolering; sparade värden överlever XDP-sparande, körtidsomläsning och nativ PDF-utseendegenerering
Data DOM numeriska index
const rows = xfa.record.nodes;
rows[1].nodes[0].rawValue = "Updated";
Kanoniska icke-negativa heltalsnycklar som "0" och "1" löser aktuell Data DOM-barn och returnerar null utanför kollektionen; icke-kanoniska nycklar som "01", "-0" och "1.0" aliasar inte numeriska poster
JavaScript index in nodes kontrollerar aktuellt barnantal, och direkt tilldelning, borttagning eller omdefinition av en kanonisk numerisk post kastar TypeError
Samma numerisk-post-begränsningar gäller inuti en skriptobjektfunktion som behåller kollektionen i lexikalt tillstånd, liksom när en annan händelse läser en kollektion som den funktionen returnerar
Använd de befintliga Data DOM-strukturella metoderna för att ordna om eller ta bort barn; en kollektion behållen av ett skriptobjekt läser aktuell händelsegraf efter varje sparad redigering och efter rullning
Oberoende kloner
En klonad barnlista använder den oberoende lagring som beskrivs i XFA-frågenodekollektioner; dess append, insertoch remove metoder ändrar den oberoende lagringen
Att skriva en nod som refereras av någon av listorna ändrar den faktiska nativa noden, och sparade värden och egenskapsöverskridningar består genom sparad XDP och nativ PDF-utseendegenerering
Data DOM-barnkollektioner tillhandahåller också clone() med oberoende postlagring; deras befintliga strukturella append, insertoch remove metoder fortsätter att mutera det nativa dataträdet
Transaktioner och gränser
Direkta kollektionsobjekt och oberoende kloner delar händelsekollektionens allokeringsgränser, operationskontroller och transaktionstidsgräns
Ett ofångat händelsefel eller budgetfel återställer nativa värden, upprepade instanser, behållet skripttillstånd, oberoende listlagring och journatillstånd tillsammans
Det direkta kollektionsobjektet och dess egenskaper är skrivskyddade; direkt tilldelning, borttagning, egenskapsomdefinition, prototypändringar och att förhindra utvidgningar kastar ett fel
Data DOM-kollektioner avvisar skrivningar, borttagning och omdefinition av kanoniska numeriska poster samtidigt som sina befintliga namngivna strukturella metoder och ordinärt icke-numeriskt egenskapsbeteende behålls
Coverage
Detta gränssnitt exponerar aktuella formulär- och egenskapsbarnkollektioner samt oberoende barnlistkloner
Generellt mall-/formulärnodsskapande, rekursiv nodkloning, barnträd-insättning och borttagning samt ytterligare nodklassbindningar förblir separat arbete