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
| Üye | Davranış |
|---|---|
length | Gü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