XFA Canlı Çocuk Koleksiyonları

JavaScript ve FormCalc olayları, bir form node'unun veya property node'unun güncel çocuk node'larını salt-okunur nodes property'si üzerinden inceleyebilir

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);

Güncel çocukları okuma

ÜyeDavranış
lengthGüncel çocuk node sayısı
item(index)O sıfır tabanlı indeksteki güncel çocuk; negatif, tam sayı olmayan veya aralık-dışı indeks için null
namedItem(name)O literal ada sahip ilk güncel çocuk; eşleşen çocuk yokken null
nodes[index]item(index) ile aynı güncel node
for...ofÇocuk node'ları güncel sıralarında okur
clone()Güncel çocuklara referans veren bağımsız bir sorgu listesi oluşturur

Koleksiyon, sahibini her okumada güncel olay grafiği üzerinden çözer; olaylar boyunca bir script nesnesi tarafından saklanan bir koleksiyon dâhil

Mevcut koleksiyonlar, tekrarlanan-instance eklemelerini ve kaldırmaları ve örtük property oluşturmayı yansıtır; ayrı tekrarlanan instance'lar ayrı property çocukları ve değerler tutar

Sahibi kaldırılmış saklanan bir koleksiyon, hayatta kalan veya değiştirme bir instance'ı hedeflemek yerine hata fırlatır

FormCalc erişimi

FormCalc, nodes'u form, property ve Data DOM node'ları üzerinde bir çocuk-koleksiyonu property'si olarak tanır

if (xfa.record.nodes.length >= 2) then
  xfa.record.nodes.item(1).nodes.namedItem("amount").rawValue = "Updated"
endif

Doğrudan length, item(index), namedItem(name) ve clone() üye zincirleri, JavaScript ile aynı güncel native node'ları ve koleksiyon sınırlarını kullanır

Form, property ve Data DOM çocuk koleksiyonları, hem JavaScript'te hem FormCalc'ta doğrudan nodes[index] okumalarını destekler

Koleksiyon indeksleri sıfır tabanlıdır; for...of JavaScript sözdizimi olarak kalır

FormCalc koleksiyon referansı üzerinden yazılanlar, gerçek bağlı data değerini günceller ve tekrarlanan-instance izolasyonunu korur; taahhüt edilmiş değerler XDP kaydetme, runtime yeniden yükleme ve native PDF appearance üretimini yaşar

Data DOM sayısal indeksleri

const rows = xfa.record.nodes;
rows[1].nodes[0].rawValue = "Updated";

"0" ve "1" gibi kanonik negatif olmayan tam sayı anahtarları, güncel Data DOM çocuğunu çözer ve koleksiyonun dışında null döndürür; "01", "-0" ve "1.0" gibi nonkanonik anahtarlar sayısal girişleri alias etmez

JavaScript index in nodes, güncel çocuk sayısını denetler ve kanonik sayısal bir girişin doğrudan ataması, silinmesi veya yeniden tanımlanması TypeError fırlatır

Aynı sayısal-giriş kısıtları, koleksiyonu lexical durumda saklayan bir script nesnesi fonksiyonu içinde ve başka bir olay, o fonksiyonun döndürdüğü bir koleksiyonu okuduğunda da geçerlidir

Çocukları yeniden sıralamak veya kaldırmak için mevcut Data DOM yapısal yöntemlerini kullanın; script nesnesi tarafından saklanan bir koleksiyon, her taahhüt edilmiş düzenlemeden ve rollback'ten sonra güncel olay grafiğini okur

Bağımsız klonlar

Klonlanmış bir çocuk listesi, XFA Query Node Collections'ta anlatılan bağımsız depolamayı kullanır; onun append, insert ve remove yöntemleri o bağımsız depolamayı değiştirir

Her iki liste tarafından referans verilen bir node'u yazmak gerçek native node'u değiştirir ve taahhüt edilmiş değerler ile property override'ları, kaydedilmiş XDP ve native PDF appearance üretimini yaşar

Data DOM çocuk koleksiyonları, bağımsız giriş depolamasıyla clone() da sağlar; onların mevcut yapısal append, insert ve remove yöntemleri, native data ağacını mutasyona uğratmaya devam eder

Transaction'lar ve sınırlar

Canlı koleksiyon nesneleri ve bağımsız klonlar, olay koleksiyonu tahsis sınırlarını, işlem denetimlerini ve transaction son teslim süresini paylaşır

Yakalanmamış bir olay hatası veya bütçe hatası, native değerleri, tekrarlanan instance'ları, saklanan script durumunu, bağımsız liste depolamasını ve journal durumunu birlikte geri yükler

Form ve property canlı koleksiyonları salt-okunurdur; doğrudan atama, silme, property yeniden tanımlama, prototype değişiklikleri ve uzantıları önlemek hata fırlatır

Data DOM koleksiyonları, mevcut adlandırılmış yapısal yöntemlerini ve sıradan sayısal-olmayan property davranışlarını korurken kanonik sayısal girişlerin yazmalarını, silmelerini ve yeniden tanımlamalarını reddeder

Kapsam

Bu interface, güncel form ve property çocuk koleksiyonlarını ve bağımsız çocuk-listesi klonlarını açığa çıkarır

Genel template/form node oluşturma, özyinelemeli node klonlama, çocuk-ağacı ekleme ve kaldırma ve ek node-sınıfı bağlamaları ayrı iş olarak kalır

Transactional XFA Data DOM Yapısı · XFA widget runtime