dat vrstvy vrácených z ArcGIS REST API<\/A>. To vám řekne, jaká pole jsou dostupná, která jsou editovatelná, jaký je typ pole, což jsou opravdu silné informace používané pro úpravy. Tyto informace můžete využít k dynamickému vytváření editačních formulářů pro vaši aplikaci.<\/P><\/P>
Tento scénář trochu zjednodušíme.<\/EM><\/P><\/P>Předpokládejme tedy, že chcete udělat následující:<\/P>Zobrazit vstupy pro každé atributové pole<\/LI>Svázat změny ve vstupu s atributy<\/LI>Zobrazit tyto změny<\/LI><\/UL><\/P>Accessors nám to umožní.<\/STRONG><\/P><\/P>Pojďme se podívat na vytvoření vstupu, který sváže změny ve vstupu s Accessorem.<\/P><\/P> function createInput(\/*Accessor*\/)target, \/*FieldName*\/)name) {\n var node = document.createElement('div');\n node.setAttribute('class', 'form-group');\n var lbl = document.createElement('label');\n lbl.innerText = name;\n var input = document.createElement('input');\n input.setAttribute('class', 'form-control');\n input.setAttribute('type', 'text');\n input.setAttribute('name', name);\n input.setAttribute('value', inputValue(target, name));\n node.appendChild(lbl);\n node.appendChild(input);\n on(input, 'keyup', function(e) {\n \/\/- aktualizovat accessor\n target[e.target.name] = e.target.value;\n });\n return node;\n }<\/PRE><\/P>V tomto příkladu posloucháme událost keyup na vstupu a aktualizujeme Accessor. Docela jednoduché.<\/STRONG><\/EM><\/P><\/P>
Nyní můžete sledovat změny provedené na accessorovi a něco s nimi dělat. Pravděpodobně byste chtěli poslat aktualizaci do FeatureService a jednoduše synchronizovat každou aktualizaci se službou.<\/P>
Abych demonstroval toto svázání, svážu dynamicky generovaný formulář s jiným formulářem, který je zakázaný, aby ukázal aktualizace.<\/P>
qTask.execute(query).then(function (results) {\n var feature = results.features[0];\n var attr = new Accessor(feature.attributes);\n Object.keys(attr).sort().map(function(key) {\n \/\/- zobrazit pouze určitá pole\n if (key !== 'OBJECTID' && key !== '_accessorProps') {\n var node = createInput(attr, key);\n var elem = document.getElementById(key);\n elem.value = inputValue(attr, key);\n \/\/- sledovat aktualizace a aktualizovat zakázaný formulář\n  .<br>.attr.watch(key, function(val) {<br>.elem.value = val;
.});<br>.entryForm.appendChild(node);<br>}<br>});<br>});//<p>Tato metoda provede dotaz na službu a převede atributy na Accessor. Také vytvoří dynamický formulář, ale všimněte si, že sleduje změny na Accessoru a aktualizuje zakázaný formulář. Zde byste také mohli předat aktualizace do FeatureService, pokud byste chtěli, možná pomocí