{"id":1555742,"date":"2022-04-18T12:30:52","date_gmt":"2022-04-18T19:30:52","guid":{"rendered":"https:\/\/www.esri.com\/arcgis-blog\/?post_type=blog&#038;p=1555742"},"modified":"2024-04-12T03:44:00","modified_gmt":"2024-04-12T10:44:00","slug":"contingent-attribute-values-in-the-arcgis-api-for-javascript","status":"publish","type":"blog","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/developers\/contingent-attribute-values-in-the-arcgis-api-for-javascript","title":{"rendered":"Contingent Attribute Values in the ArcGIS API for JavaScript"},"author":246262,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","format":"standard","meta":{"_acf_changed":false,"_searchwp_excluded":""},"categories":[738191],"tags":[764532,764082],"industry":[],"product":[761642,36831,36601],"class_list":["post-1555742","blog","type-blog","status-publish","format-standard","hentry","category-developers","tag-4-23","tag-whats-new-march-2022","product-platform","product-js-api-arcgis","product-developers"],"acf":{"authors":[{"ID":246262,"user_firstname":"Jose","user_lastname":"Banuelos","nickname":"JBanuelos","user_nicename":"jbanuelos","display_name":"Jose Banuelos","user_email":"JBanuelos@esri.com","user_url":"","user_registered":"2021-07-02 18:51:02","user_description":"Jose is a Product Engineer on the ArcGIS API for JavaScript team in Redlands, CA.","user_avatar":"<img data-del=\"avatar\" src='https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2021\/07\/jose-banuelos-466x465.jpg' class='avatar pp-user-avatar avatar-96 photo ' height='96' width='96'\/>"}],"short_description":"Learn how to create contingent values in ArcGIS Pro, publish a service with them, and consume them in the ArcGIS API for JavaScript.","flexible_content":[{"acf_fc_layout":"content","content":"<p>The <a href=\"https:\/\/developers.arcgis.com\/javascript\/latest\/api-reference\/esri-widgets-FeatureForm.html\"><u>FeatureForm<\/u><\/a> and <a href=\"https:\/\/developers.arcgis.com\/javascript\/latest\/api-reference\/esri-widgets-Editor.html\"><u>Editor<\/u><\/a> widgets added support for contingent attribute values (contingent values) in the March release of the ArcGIS API for JavaScript (JS API), version 4.23.<\/p>\n<h2>What are Contingent Attribute Values?<\/h2>\n<p>Contingent values are a data design feature introduced in ArcGIS Pro 2.3. Contingent values restrict the list of valid inputs in a field based off the field values chosen in one or more other fields. In other words, values in one field will become dependent on values chosen in other fields. This helps enforce data integrity in editing workflows by restricting the list of available attribute values to choose from. Take a look at <a href=\"https:\/\/pro.arcgis.com\/en\/pro-app\/2.8\/help\/data\/geodatabases\/overview\/contingent-values.htm\"><u>Create and manage contingent values<\/u><\/a> to learn more about contingent attribute values.<\/p>\n<h2>How to create and publish contingent attribute values in ArcGIS Pro<\/h2>\n<p>To demonstrate how to create and publish data with contingent values in ArcGIS Pro, I created a feature class with some animal taxonomy data included <a href=\"https:\/\/www.arcgis.com\/home\/item.html?id=213cc12046544a7685eecf43942d5698\"><u>here<\/u><\/a>. You can skip this section if you are already familiar with creating contingent values, or if you already have a service published with contingent values. You can use the following <a href=\"https:\/\/www.arcgis.com\/home\/item.html?id=c221dc7c3ee849848555565aee1ca05d\"><u>item<\/u><\/a> and move on to the <a href=\"#contingent-values-with-the-js-api\"><u>next section<\/u><\/a> to bring in the data to the FeatureForm and Editor widgets in the JS API.<\/p>\n<p><strong>Step 1<\/strong>:<br \/>\nFirst, download the <a href=\"https:\/\/www.arcgis.com\/home\/item.html?id=213cc12046544a7685eecf43942d5698\"><u>AnimalTax<\/u><\/a> file geodatabase containing the data we will be working with. Unzip the downloaded file and connect to the folder from ArcGIS Pro. Finally, add the <strong>GenusData<\/strong> feature class to your <strong>Map<\/strong>.<\/p>\n"},{"acf_fc_layout":"image","image":{"ID":1555852,"id":1555852,"title":"Pro folder structure","filename":"folder-pro.png","filesize":3072,"url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/04\/folder-pro.png","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/developers\/contingent-attribute-values-in-the-arcgis-api-for-javascript\/folder-pro","alt":"folder structure","author":"246262","description":"","caption":"ArcGIS Pro folder structure","name":"folder-pro","status":"inherit","uploaded_to":1555742,"date":"2022-04-15 19:41:45","modified":"2022-04-15 19:43:40","menu_order":0,"mime_type":"image\/png","type":"image","subtype":"png","icon":"https:\/\/www.esri.com\/arcgis-blog\/wp-includes\/images\/media\/default.png","width":330,"height":180,"sizes":{"thumbnail":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/04\/folder-pro-213x180.png","thumbnail-width":213,"thumbnail-height":180,"medium":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/04\/folder-pro.png","medium-width":330,"medium-height":180,"medium_large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/04\/folder-pro.png","medium_large-width":330,"medium_large-height":180,"large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/04\/folder-pro.png","large-width":330,"large-height":180,"1536x1536":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/04\/folder-pro.png","1536x1536-width":330,"1536x1536-height":180,"2048x2048":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/04\/folder-pro.png","2048x2048-width":330,"2048x2048-height":180,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/04\/folder-pro.png","card_image-width":330,"card_image-height":180,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/04\/folder-pro.png","wide_image-width":330,"wide_image-height":180}},"image_position":"left-center","orientation":"horizontal","hyperlink":""},{"acf_fc_layout":"content","content":"<p>As part of the data preparation, the contingent values fields should be setup with domains. Therefore, the feature class provided sets domains on the <strong>ORDER_<\/strong>, <strong>FAMILY<\/strong>, and <strong>GENUS<\/strong> fields. These fields will be used to create our contingent values. The following image illustrates how your Map in ArcGIS Pro should look like after adding the <strong>GenusData <\/strong>feature class.<\/p>\n"},{"acf_fc_layout":"image","image":{"ID":1558742,"id":1558742,"title":"pro-map-new","filename":"pro-map-new.png","filesize":191903,"url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/04\/pro-map-new.png","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/developers\/contingent-attribute-values-in-the-arcgis-api-for-javascript\/pro-map-new","alt":"pro map","author":"246262","description":"","caption":"Genus feature class in ArcGIS Pro Map","name":"pro-map-new","status":"inherit","uploaded_to":1555742,"date":"2022-04-20 22:02:21","modified":"2022-04-20 22:03:17","menu_order":0,"mime_type":"image\/png","type":"image","subtype":"png","icon":"https:\/\/www.esri.com\/arcgis-blog\/wp-includes\/images\/media\/default.png","width":1416,"height":706,"sizes":{"thumbnail":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/04\/pro-map-new-213x200.png","thumbnail-width":213,"thumbnail-height":200,"medium":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/04\/pro-map-new.png","medium-width":464,"medium-height":231,"medium_large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/04\/pro-map-new.png","medium_large-width":768,"medium_large-height":383,"large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/04\/pro-map-new.png","large-width":1416,"large-height":706,"1536x1536":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/04\/pro-map-new.png","1536x1536-width":1416,"1536x1536-height":706,"2048x2048":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/04\/pro-map-new.png","2048x2048-width":1416,"2048x2048-height":706,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/04\/pro-map-new-826x412.png","card_image-width":826,"card_image-height":412,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/04\/pro-map-new.png","wide_image-width":1416,"wide_image-height":706}},"image_position":"left-center","orientation":"horizontal","hyperlink":""},{"acf_fc_layout":"content","content":"<p><strong>Step 2<\/strong>:<\/p>\n<p>Add a unique value renderer for the <strong>Genus<\/strong> feature class with the <strong>ORDER_<\/strong>\u00a0field set. Next, select <strong>Add all values<\/strong> in the symbology pane to assign all field domains with their own corresponding symbol.<\/p>\n"},{"acf_fc_layout":"image","image":{"ID":1559022,"id":1559022,"title":"uvr-symbology","filename":"uvr-symbology.png","filesize":22303,"url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/04\/uvr-symbology.png","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/developers\/contingent-attribute-values-in-the-arcgis-api-for-javascript\/uvr-symbology","alt":"uvr-symbology","author":"246262","description":"feature class unique value renderer","caption":"","name":"uvr-symbology","status":"inherit","uploaded_to":1555742,"date":"2022-04-20 23:28:39","modified":"2022-04-20 23:29:03","menu_order":0,"mime_type":"image\/png","type":"image","subtype":"png","icon":"https:\/\/www.esri.com\/arcgis-blog\/wp-includes\/images\/media\/default.png","width":475,"height":639,"sizes":{"thumbnail":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/04\/uvr-symbology-213x200.png","thumbnail-width":213,"thumbnail-height":200,"medium":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/04\/uvr-symbology.png","medium-width":194,"medium-height":261,"medium_large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/04\/uvr-symbology.png","medium_large-width":475,"medium_large-height":639,"large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/04\/uvr-symbology.png","large-width":475,"large-height":639,"1536x1536":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/04\/uvr-symbology.png","1536x1536-width":475,"1536x1536-height":639,"2048x2048":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/04\/uvr-symbology.png","2048x2048-width":475,"2048x2048-height":639,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/04\/uvr-symbology-346x465.png","card_image-width":346,"card_image-height":465,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/04\/uvr-symbology.png","wide_image-width":475,"wide_image-height":639}},"image_position":"left-center","orientation":"horizontal","hyperlink":""},{"acf_fc_layout":"content","content":"<p><strong>Step 3<\/strong>:<\/p>\n<p>Next, right-click on the feature class in the Contents pane, hover over <strong>Data Design<\/strong>, and click <strong>Contingent Values<\/strong> to open the Contingent Values view.<\/p>\n"},{"acf_fc_layout":"image","image":{"ID":1555862,"id":1555862,"title":"data design contingent values","filename":"pro-data-design.png","filesize":10601,"url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/04\/pro-data-design.png","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/developers\/contingent-attribute-values-in-the-arcgis-api-for-javascript\/pro-data-design","alt":"data design","author":"246262","description":"","caption":"Open Contingent Values View from Data Design","name":"pro-data-design","status":"inherit","uploaded_to":1555742,"date":"2022-04-15 19:41:48","modified":"2022-04-15 19:46:56","menu_order":0,"mime_type":"image\/png","type":"image","subtype":"png","icon":"https:\/\/www.esri.com\/arcgis-blog\/wp-includes\/images\/media\/default.png","width":592,"height":255,"sizes":{"thumbnail":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/04\/pro-data-design-213x200.png","thumbnail-width":213,"thumbnail-height":200,"medium":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/04\/pro-data-design.png","medium-width":464,"medium-height":200,"medium_large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/04\/pro-data-design.png","medium_large-width":592,"medium_large-height":255,"large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/04\/pro-data-design.png","large-width":592,"large-height":255,"1536x1536":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/04\/pro-data-design.png","1536x1536-width":592,"1536x1536-height":255,"2048x2048":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/04\/pro-data-design.png","2048x2048-width":592,"2048x2048-height":255,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/04\/pro-data-design.png","card_image-width":592,"card_image-height":255,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/04\/pro-data-design.png","wide_image-width":592,"wide_image-height":255}},"image_position":"left-center","orientation":"horizontal","hyperlink":""},{"acf_fc_layout":"content","content":"<p><strong>Step 4<\/strong>:<\/p>\n<p>Create a new field group by clicking on the <strong>Field Groups<\/strong> button in the Contingent Values view. A field group is a named collection of fields in a table or feature class, and defines what fields will have contingent values. You can define multiple field groups for the same data, but in this example we will only create one.<\/p>\n"},{"acf_fc_layout":"image","image":{"ID":1555812,"id":1555812,"title":"contingent-values-ribbon","filename":"contingent-values-ribbon.png","filesize":13813,"url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/04\/contingent-values-ribbon.png","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/developers\/contingent-attribute-values-in-the-arcgis-api-for-javascript\/contingent-values-ribbon","alt":"contingent values view","author":"246262","description":"","caption":"Contingent Values View","name":"contingent-values-ribbon","status":"inherit","uploaded_to":1555742,"date":"2022-04-15 19:41:31","modified":"2022-04-15 19:47:52","menu_order":0,"mime_type":"image\/png","type":"image","subtype":"png","icon":"https:\/\/www.esri.com\/arcgis-blog\/wp-includes\/images\/media\/default.png","width":479,"height":142,"sizes":{"thumbnail":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/04\/contingent-values-ribbon-213x142.png","thumbnail-width":213,"thumbnail-height":142,"medium":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/04\/contingent-values-ribbon.png","medium-width":464,"medium-height":138,"medium_large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/04\/contingent-values-ribbon.png","medium_large-width":479,"medium_large-height":142,"large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/04\/contingent-values-ribbon.png","large-width":479,"large-height":142,"1536x1536":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/04\/contingent-values-ribbon.png","1536x1536-width":479,"1536x1536-height":142,"2048x2048":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/04\/contingent-values-ribbon.png","2048x2048-width":479,"2048x2048-height":142,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/04\/contingent-values-ribbon.png","card_image-width":479,"card_image-height":142,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/04\/contingent-values-ribbon.png","wide_image-width":479,"wide_image-height":142}},"image_position":"left-center","orientation":"horizontal","hyperlink":""},{"acf_fc_layout":"content","content":"<p><strong>Step 5<strong>:<\/strong><\/strong><\/p>\n<p>In this step, add a name for the field group you created. Click on the <strong>Add Fields<\/strong> drop-down to select the fields that will make up this field group. Check the <strong>ORDER_<\/strong>, <strong>FAMILY<\/strong>, and <strong>GENUS <\/strong>fields. Click <strong>Add<\/strong>. Leave the <strong>Restrictive <\/strong>check box checked and click <strong>OK<\/strong>.<\/p>\n"},{"acf_fc_layout":"image","image":{"ID":1556012,"id":1556012,"title":"create-field-group-2","filename":"create-field-group-2-1.png","filesize":11140,"url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/04\/create-field-group-2-1.png","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/developers\/contingent-attribute-values-in-the-arcgis-api-for-javascript\/create-field-group-2-2","alt":"create field group","author":"246262","description":"","caption":"Create field group","name":"create-field-group-2-2","status":"inherit","uploaded_to":1555742,"date":"2022-04-15 21:29:32","modified":"2022-04-15 21:30:07","menu_order":0,"mime_type":"image\/png","type":"image","subtype":"png","icon":"https:\/\/www.esri.com\/arcgis-blog\/wp-includes\/images\/media\/default.png","width":623,"height":622,"sizes":{"thumbnail":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/04\/create-field-group-2-1-213x200.png","thumbnail-width":213,"thumbnail-height":200,"medium":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/04\/create-field-group-2-1.png","medium-width":261,"medium-height":261,"medium_large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/04\/create-field-group-2-1.png","medium_large-width":623,"medium_large-height":622,"large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/04\/create-field-group-2-1.png","large-width":623,"large-height":622,"1536x1536":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/04\/create-field-group-2-1.png","1536x1536-width":623,"1536x1536-height":622,"2048x2048":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/04\/create-field-group-2-1.png","2048x2048-width":623,"2048x2048-height":622,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/04\/create-field-group-2-1-466x465.png","card_image-width":466,"card_image-height":465,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/04\/create-field-group-2-1.png","wide_image-width":623,"wide_image-height":622}},"image_position":"left-center","orientation":"horizontal","hyperlink":""},{"acf_fc_layout":"content","content":"<p><strong>Step 6<\/strong>:<\/p>\n<p>Next, we will create the contingent values for this data. Select the Field Group name you created in the previous step. Click the <strong>New<\/strong> button on the ribbon or click directly on the empty row where it says <strong>Click to add contingent values<\/strong>. Choose a field attribute value from the drop-down menus for each field in the field group. See the image below as an example for the contingent values you can create for the <strong>Rodentia <\/strong>and <strong>Primates <\/strong>domains.<\/p>\n"},{"acf_fc_layout":"image","image":{"ID":1556022,"id":1556022,"title":"contingent-values","filename":"contingent-values.png","filesize":8505,"url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/04\/contingent-values.png","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/developers\/contingent-attribute-values-in-the-arcgis-api-for-javascript\/contingent-values","alt":"contingent values","author":"246262","description":"","caption":"Creating contingent values","name":"contingent-values","status":"inherit","uploaded_to":1555742,"date":"2022-04-15 21:35:55","modified":"2022-04-15 21:36:18","menu_order":0,"mime_type":"image\/png","type":"image","subtype":"png","icon":"https:\/\/www.esri.com\/arcgis-blog\/wp-includes\/images\/media\/default.png","width":342,"height":367,"sizes":{"thumbnail":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/04\/contingent-values-213x200.png","thumbnail-width":213,"thumbnail-height":200,"medium":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/04\/contingent-values.png","medium-width":243,"medium-height":261,"medium_large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/04\/contingent-values.png","medium_large-width":342,"medium_large-height":367,"large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/04\/contingent-values.png","large-width":342,"large-height":367,"1536x1536":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/04\/contingent-values.png","1536x1536-width":342,"1536x1536-height":367,"2048x2048":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/04\/contingent-values.png","2048x2048-width":342,"2048x2048-height":367,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/04\/contingent-values.png","card_image-width":342,"card_image-height":367,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/04\/contingent-values.png","wide_image-width":342,"wide_image-height":367}},"image_position":"left-center","orientation":"horizontal","hyperlink":""},{"acf_fc_layout":"content","content":"<p>The <strong>AnimalTax.gdb<\/strong> contains a <strong>GenusDataContingentValues<\/strong> feature class with all contingent values already set if you would like to use as a reference for the rest of the domain fields. Feel free to choose whatever contingent values you like, the data provided is just an example that you can follow. Make sure to click the <strong>Save <\/strong>button in the Contingent Values view to save your changes.<\/p>\n"},{"acf_fc_layout":"content","content":"<p><strong>Step 7<\/strong>:<\/p>\n<p>Finally publish the layer as a web layer to ArcGIS Online or Portal for ArcGIS. Add a name, summary, tags, and make sure to set the Layer Type to Feature.<\/p>\n<p><em>Note: Contingent Values are currently not supported for ArcGIS Enterprise hosted feature services. Use feature services that reference registered data instead when working with Enterprise deployments.<\/em><\/p>\n"},{"acf_fc_layout":"image","image":{"ID":1555882,"id":1555882,"title":"pro-publish","filename":"pro-publish.png","filesize":7263,"url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/04\/pro-publish.png","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/developers\/contingent-attribute-values-in-the-arcgis-api-for-javascript\/pro-publish","alt":"Publish as web layer","author":"246262","description":"","caption":"Publish data as web layer.","name":"pro-publish","status":"inherit","uploaded_to":1555742,"date":"2022-04-15 19:41:58","modified":"2022-04-15 19:56:49","menu_order":0,"mime_type":"image\/png","type":"image","subtype":"png","icon":"https:\/\/www.esri.com\/arcgis-blog\/wp-includes\/images\/media\/default.png","width":457,"height":560,"sizes":{"thumbnail":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/04\/pro-publish-213x200.png","thumbnail-width":213,"thumbnail-height":200,"medium":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/04\/pro-publish.png","medium-width":213,"medium-height":261,"medium_large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/04\/pro-publish.png","medium_large-width":457,"medium_large-height":560,"large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/04\/pro-publish.png","large-width":457,"large-height":560,"1536x1536":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/04\/pro-publish.png","1536x1536-width":457,"1536x1536-height":560,"2048x2048":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/04\/pro-publish.png","2048x2048-width":457,"2048x2048-height":560,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/04\/pro-publish-379x465.png","card_image-width":379,"card_image-height":465,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/04\/pro-publish.png","wide_image-width":457,"wide_image-height":560}},"image_position":"left-center","orientation":"horizontal","hyperlink":""},{"acf_fc_layout":"content","content":"<p><a name=\"contingent-values-with-the-js-api\"><\/a><\/p>\n<h2>Contingent Values with the JS API<\/h2>\n<p>The goal to support contingent values in the JS API was to avoid the complexity associated with them, and instead provide a comprehensible user experience. We achieved this by adding native support to the <a href=\"https:\/\/developers.arcgis.com\/javascript\/latest\/api-reference\/esri-widgets-FeatureForm.html\"><u>FeatureForm<\/u><\/a> and <a href=\"https:\/\/developers.arcgis.com\/javascript\/latest\/api-reference\/esri-widgets-Editor.html\"><u>Editor<\/u><\/a> widgets. All you need to do is bring in your feature services published with contingent values and start editing! Everything is handled out-of-the-box.<\/p>\n<h3>FeatureForm<\/h3>\n<p>The FeatureForm widget automatically detects if a feature service was published with contingent values. The field inputs in the form that make up the field group(s) created will display <strong>Recommended <\/strong>and <strong>Other <\/strong>sections in the dropdown. The <strong>Recommended <\/strong>section displays a list of domain values that would satisfy the contingencies defined when preparing the data.<\/p>\n<p>The <strong>Other <\/strong>section displays a list of the rest of the domain values for that field. Selecting a value from the <strong>Other <\/strong>list will lead to validation errors since they are considered invalid for the contingency. The purpose of the <strong>Other <\/strong>section is to allow users to still view and select the other values available in the field domain. As a result, data editing in the FeatureForm is not restricted to a top-down approach.<\/p>\n"},{"acf_fc_layout":"image","image":{"ID":1556032,"id":1556032,"title":"feature-form-recommendation","filename":"feature-form-recommendation.png","filesize":6089,"url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/04\/feature-form-recommendation.png","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/developers\/contingent-attribute-values-in-the-arcgis-api-for-javascript\/feature-form-recommendation","alt":"feature form","author":"246262","description":"","caption":"FeatureForm recommendations","name":"feature-form-recommendation","status":"inherit","uploaded_to":1555742,"date":"2022-04-15 21:37:49","modified":"2022-04-15 21:38:11","menu_order":0,"mime_type":"image\/png","type":"image","subtype":"png","icon":"https:\/\/www.esri.com\/arcgis-blog\/wp-includes\/images\/media\/default.png","width":346,"height":458,"sizes":{"thumbnail":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/04\/feature-form-recommendation-213x200.png","thumbnail-width":213,"thumbnail-height":200,"medium":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/04\/feature-form-recommendation.png","medium-width":197,"medium-height":261,"medium_large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/04\/feature-form-recommendation.png","medium_large-width":346,"medium_large-height":458,"large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/04\/feature-form-recommendation.png","large-width":346,"large-height":458,"1536x1536":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/04\/feature-form-recommendation.png","1536x1536-width":346,"1536x1536-height":458,"2048x2048":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/04\/feature-form-recommendation.png","2048x2048-width":346,"2048x2048-height":458,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/04\/feature-form-recommendation.png","card_image-width":346,"card_image-height":458,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/04\/feature-form-recommendation.png","wide_image-width":346,"wide_image-height":458}},"image_position":"left-center","orientation":"horizontal","hyperlink":""},{"acf_fc_layout":"content","content":"<p><a href=\"https:\/\/banuelosj.github.io\/esri-blogs\/contingent-values-jsapi\/feature-form\/index.html\"><u>FeatureForm widget live app<\/u><\/a><\/p>\n<h3>Validation<\/h3>\n<p>The FeatureForm provides validation for invalid contingencies. If there is an invalid field value set in the form, then all the fields that make up the field group will display a validation error message underneath each field input.<\/p>\n"},{"acf_fc_layout":"image","image":{"ID":1556052,"id":1556052,"title":"validation","filename":"validation.png","filesize":9200,"url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/04\/validation.png","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/developers\/contingent-attribute-values-in-the-arcgis-api-for-javascript\/validation","alt":"validation","author":"246262","description":"","caption":"FeatureForm contingent values validation","name":"validation","status":"inherit","uploaded_to":1555742,"date":"2022-04-15 21:42:23","modified":"2022-04-15 21:42:54","menu_order":0,"mime_type":"image\/png","type":"image","subtype":"png","icon":"https:\/\/www.esri.com\/arcgis-blog\/wp-includes\/images\/media\/default.png","width":345,"height":394,"sizes":{"thumbnail":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/04\/validation-213x200.png","thumbnail-width":213,"thumbnail-height":200,"medium":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/04\/validation.png","medium-width":229,"medium-height":261,"medium_large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/04\/validation.png","medium_large-width":345,"medium_large-height":394,"large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/04\/validation.png","large-width":345,"large-height":394,"1536x1536":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/04\/validation.png","1536x1536-width":345,"1536x1536-height":394,"2048x2048":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/04\/validation.png","2048x2048-width":345,"2048x2048-height":394,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/04\/validation.png","card_image-width":345,"card_image-height":394,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/04\/validation.png","wide_image-width":345,"wide_image-height":394}},"image_position":"left-center","orientation":"horizontal","hyperlink":""},{"acf_fc_layout":"content","content":"<h3>Editor<\/h3>\n<p>The Editor widget also supports contingent values natively since it uses the FeatureForm widget. The benefit of using the Editor is that it will not allow you to submit any edits if there are contingency validation errors. This enforces data integrity because it helps prevent incorrect data entry. There is no server-side validation for contingent values. Therefore, the only way to ensure that we submit valid data is to enforce error handling on the client via the Editor widget.<\/p>\n"},{"acf_fc_layout":"image","image":{"ID":1556882,"id":1556882,"title":"editor-cav","filename":"editor-cav.gif","filesize":376586,"url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/04\/editor-cav.gif","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/developers\/contingent-attribute-values-in-the-arcgis-api-for-javascript\/editor-cav","alt":"editor contingent values","author":"246262","description":"","caption":"Editing features with contingent values","name":"editor-cav","status":"inherit","uploaded_to":1555742,"date":"2022-04-18 15:22:54","modified":"2022-04-18 15:23:30","menu_order":0,"mime_type":"image\/gif","type":"image","subtype":"gif","icon":"https:\/\/www.esri.com\/arcgis-blog\/wp-includes\/images\/media\/default.png","width":808,"height":624,"sizes":{"thumbnail":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/04\/editor-cav-213x200.gif","thumbnail-width":213,"thumbnail-height":200,"medium":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/04\/editor-cav.gif","medium-width":338,"medium-height":261,"medium_large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/04\/editor-cav.gif","medium_large-width":768,"medium_large-height":593,"large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/04\/editor-cav.gif","large-width":808,"large-height":624,"1536x1536":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/04\/editor-cav.gif","1536x1536-width":808,"1536x1536-height":624,"2048x2048":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/04\/editor-cav.gif","2048x2048-width":808,"2048x2048-height":624,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/04\/editor-cav-602x465.gif","card_image-width":602,"card_image-height":465,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/04\/editor-cav.gif","wide_image-width":808,"wide_image-height":624}},"image_position":"left-center","orientation":"horizontal","hyperlink":""},{"acf_fc_layout":"content","content":"<p><a href=\"https:\/\/banuelosj.github.io\/esri-blogs\/contingent-values-jsapi\/editor\/index.html\"><u>Editor widget live app<\/u><\/a><\/p>\n<h3>Limitations<\/h3>\n<ul>\n<li>Support for ArcGIS Pro 2.3+<\/li>\n<li>Support for Enterprise 10.7.1+<\/li>\n<li>No current support for Enterprise hosted feature services<\/li>\n<li>JS API only supports <a href=\"https:\/\/pro.arcgis.com\/en\/pro-app\/latest\/help\/data\/geodatabases\/overview\/contingent-values.htm#ESRI_SECTION1_C30D73392D964D51A8B606128A8A6E8F\"><u>restrictive<\/u><\/a> field groups<\/li>\n<\/ul>\n<h2>Conclusion<\/h2>\n<p>Contingent attribute values support is a key feature we are excited to include in the ArcGIS API for JavaScript. This will improve editing workflows by helping enforce data integrity.<br \/>\nI added a couple applications to showcase the FeatureForm and Editor widgets in the JS API with the service we published containing contingent values.<\/p>\n<ol>\n<li>FeatureForm with contingent values feature service &#8211; <a href=\"https:\/\/banuelosj.github.io\/esri-blogs\/contingent-values-jsapi\/feature-form\/index.html\"><u>Live app<\/u><\/a> &#8211; <a href=\"https:\/\/github.com\/banuelosj\/esri-blogs\/tree\/main\/contingent-values-jsapi\/feature-form\"><u>code<\/u><\/a><\/li>\n<li>Editing features with contingent values using Editor \u2013 <a href=\"https:\/\/banuelosj.github.io\/esri-blogs\/contingent-values-jsapi\/editor\/index.html\"><u>Live app<\/u><\/a> &#8211; <a href=\"https:\/\/github.com\/banuelosj\/esri-blogs\/tree\/main\/contingent-values-jsapi\/editor\"><u>code<\/u><\/a><\/li>\n<\/ol>\n<h3>Additional resources<\/h3>\n<ul>\n<li><a href=\"https:\/\/pro.arcgis.com\/en\/pro-app\/latest\/help\/data\/geodatabases\/overview\/an-overview-of-attribute-domains.htm\"><u>ArcGIS Pro &#8211; Introduction to attribute domains<\/u><\/a><\/li>\n<li><a href=\"https:\/\/pro.arcgis.com\/en\/pro-app\/latest\/help\/data\/geodatabases\/overview\/create-modify-and-delete-domains.htm\"><u>ArcGIS Pro &#8211; Create and manage domains<\/u><\/a><\/li>\n<li><a href=\"https:\/\/pro.arcgis.com\/en\/pro-app\/latest\/help\/data\/geodatabases\/overview\/contingent-values.htm\"><u>ArcGIS Pro &#8211; Create and manage contingent values<\/u><\/a><\/li>\n<\/ul>\n"}],"related_articles":[{"ID":1519642,"post_author":"4271","post_date":"2022-03-23 10:10:51","post_date_gmt":"2022-03-23 17:10:51","post_content":"","post_title":"What's new in ArcGIS API for JavaScript (4.23)","post_excerpt":"","post_status":"publish","comment_status":"open","ping_status":"closed","post_password":"","post_name":"whats-new-in-arcgis-api-for-javascript-4-23","to_ping":"","pinged":"","post_modified":"2022-11-21 01:48:30","post_modified_gmt":"2022-11-21 09:48:30","post_content_filtered":"","post_parent":0,"guid":"https:\/\/www.esri.com\/arcgis-blog\/?post_type=blog&#038;p=1519642","menu_order":0,"post_type":"blog","post_mime_type":"","comment_count":"0","filter":"raw"},{"ID":565292,"post_author":"9712","post_date":"2019-07-16 05:20:01","post_date_gmt":"2019-07-16 12:20:01","post_content":"","post_title":"Planning for Contingencies - Contingent Values in ArcGIS Pro 2.4","post_excerpt":"","post_status":"publish","comment_status":"closed","ping_status":"closed","post_password":"","post_name":"contingent-values-in-arcgis-pro-2-4","to_ping":"","pinged":"","post_modified":"2019-07-16 08:41:46","post_modified_gmt":"2019-07-16 15:41:46","post_content_filtered":"","post_parent":0,"guid":"https:\/\/www.esri.com\/arcgis-blog\/?post_type=blog&#038;p=565292","menu_order":0,"post_type":"blog","post_mime_type":"","comment_count":"0","filter":"raw"},{"ID":1507632,"post_author":"7641","post_date":"2022-03-22 23:20:52","post_date_gmt":"2022-03-23 06:20:52","post_content":"","post_title":"What's new in ArcGIS Online (March 2022)","post_excerpt":"","post_status":"publish","comment_status":"closed","ping_status":"closed","post_password":"","post_name":"whats-new-arcgis-online-march-2022","to_ping":"","pinged":"","post_modified":"2022-03-23 13:33:01","post_modified_gmt":"2022-03-23 20:33:01","post_content_filtered":"","post_parent":0,"guid":"https:\/\/www.esri.com\/arcgis-blog\/?post_type=blog&#038;p=1507632","menu_order":0,"post_type":"blog","post_mime_type":"","comment_count":"0","filter":"raw"}],"card_image":false,"wide_image":false},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v25.9 (Yoast SEO v25.9) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Contingent Attribute Values in the ArcGIS API for JavaScript<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/developers\/contingent-attribute-values-in-the-arcgis-api-for-javascript\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Contingent Attribute Values in the ArcGIS API for JavaScript\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/developers\/contingent-attribute-values-in-the-arcgis-api-for-javascript\" \/>\n<meta property=\"og:site_name\" content=\"ArcGIS Blog\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/esrigis\/\" \/>\n<meta property=\"article:modified_time\" content=\"2024-04-12T10:44:00+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:site\" content=\"@ESRI\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":[\"Article\",\"BlogPosting\"],\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/developers\/contingent-attribute-values-in-the-arcgis-api-for-javascript#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/developers\/contingent-attribute-values-in-the-arcgis-api-for-javascript\"},\"author\":{\"name\":\"Jose Banuelos\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/person\/6ea59888bec0790ef28f9fc49f25e3be\"},\"headline\":\"Contingent Attribute Values in the ArcGIS API for JavaScript\",\"datePublished\":\"2022-04-18T19:30:52+00:00\",\"dateModified\":\"2024-04-12T10:44:00+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/developers\/contingent-attribute-values-in-the-arcgis-api-for-javascript\"},\"wordCount\":9,\"publisher\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#organization\"},\"keywords\":[\"4.23\",\"whats new march 2022\"],\"articleSection\":[\"Developers\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/developers\/contingent-attribute-values-in-the-arcgis-api-for-javascript\",\"url\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/developers\/contingent-attribute-values-in-the-arcgis-api-for-javascript\",\"name\":\"Contingent Attribute Values in the ArcGIS API for JavaScript\",\"isPartOf\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#website\"},\"datePublished\":\"2022-04-18T19:30:52+00:00\",\"dateModified\":\"2024-04-12T10:44:00+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/developers\/contingent-attribute-values-in-the-arcgis-api-for-javascript#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/developers\/contingent-attribute-values-in-the-arcgis-api-for-javascript\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/developers\/contingent-attribute-values-in-the-arcgis-api-for-javascript#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.esri.com\/arcgis-blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Contingent Attribute Values in the ArcGIS API for JavaScript\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#website\",\"url\":\"https:\/\/www.esri.com\/arcgis-blog\/\",\"name\":\"ArcGIS Blog\",\"description\":\"Get insider info from Esri product teams\",\"publisher\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.esri.com\/arcgis-blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#organization\",\"name\":\"Esri\",\"url\":\"https:\/\/www.esri.com\/arcgis-blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2018\/04\/Esri.png\",\"contentUrl\":\"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2018\/04\/Esri.png\",\"width\":400,\"height\":400,\"caption\":\"Esri\"},\"image\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/esrigis\/\",\"https:\/\/x.com\/ESRI\",\"https:\/\/www.linkedin.com\/company\/5311\/\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/person\/6ea59888bec0790ef28f9fc49f25e3be\",\"name\":\"Jose Banuelos\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2021\/07\/jose-banuelos-466x465.jpg\",\"contentUrl\":\"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2021\/07\/jose-banuelos-466x465.jpg\",\"caption\":\"Jose Banuelos\"},\"description\":\"Jose is a Product Engineer on the ArcGIS API for JavaScript team in Redlands, CA.\",\"url\":\"https:\/\/www.esri.com\/arcgis-blog\/author\/jbanuelos\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Contingent Attribute Values in the ArcGIS API for JavaScript","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/developers\/contingent-attribute-values-in-the-arcgis-api-for-javascript","og_locale":"en_US","og_type":"article","og_title":"Contingent Attribute Values in the ArcGIS API for JavaScript","og_url":"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/developers\/contingent-attribute-values-in-the-arcgis-api-for-javascript","og_site_name":"ArcGIS Blog","article_publisher":"https:\/\/www.facebook.com\/esrigis\/","article_modified_time":"2024-04-12T10:44:00+00:00","twitter_card":"summary_large_image","twitter_site":"@ESRI","schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":["Article","BlogPosting"],"@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/developers\/contingent-attribute-values-in-the-arcgis-api-for-javascript#article","isPartOf":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/developers\/contingent-attribute-values-in-the-arcgis-api-for-javascript"},"author":{"name":"Jose Banuelos","@id":"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/person\/6ea59888bec0790ef28f9fc49f25e3be"},"headline":"Contingent Attribute Values in the ArcGIS API for JavaScript","datePublished":"2022-04-18T19:30:52+00:00","dateModified":"2024-04-12T10:44:00+00:00","mainEntityOfPage":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/developers\/contingent-attribute-values-in-the-arcgis-api-for-javascript"},"wordCount":9,"publisher":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/#organization"},"keywords":["4.23","whats new march 2022"],"articleSection":["Developers"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/developers\/contingent-attribute-values-in-the-arcgis-api-for-javascript","url":"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/developers\/contingent-attribute-values-in-the-arcgis-api-for-javascript","name":"Contingent Attribute Values in the ArcGIS API for JavaScript","isPartOf":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/#website"},"datePublished":"2022-04-18T19:30:52+00:00","dateModified":"2024-04-12T10:44:00+00:00","breadcrumb":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/developers\/contingent-attribute-values-in-the-arcgis-api-for-javascript#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/developers\/contingent-attribute-values-in-the-arcgis-api-for-javascript"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/developers\/contingent-attribute-values-in-the-arcgis-api-for-javascript#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.esri.com\/arcgis-blog\/"},{"@type":"ListItem","position":2,"name":"Contingent Attribute Values in the ArcGIS API for JavaScript"}]},{"@type":"WebSite","@id":"https:\/\/www.esri.com\/arcgis-blog\/#website","url":"https:\/\/www.esri.com\/arcgis-blog\/","name":"ArcGIS Blog","description":"Get insider info from Esri product teams","publisher":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.esri.com\/arcgis-blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.esri.com\/arcgis-blog\/#organization","name":"Esri","url":"https:\/\/www.esri.com\/arcgis-blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2018\/04\/Esri.png","contentUrl":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2018\/04\/Esri.png","width":400,"height":400,"caption":"Esri"},"image":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/esrigis\/","https:\/\/x.com\/ESRI","https:\/\/www.linkedin.com\/company\/5311\/"]},{"@type":"Person","@id":"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/person\/6ea59888bec0790ef28f9fc49f25e3be","name":"Jose Banuelos","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/person\/image\/","url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2021\/07\/jose-banuelos-466x465.jpg","contentUrl":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2021\/07\/jose-banuelos-466x465.jpg","caption":"Jose Banuelos"},"description":"Jose is a Product Engineer on the ArcGIS API for JavaScript team in Redlands, CA.","url":"https:\/\/www.esri.com\/arcgis-blog\/author\/jbanuelos"}]}},"text_date":"April 18, 2022","author_name":"Jose Banuelos","author_page":"https:\/\/www.esri.com\/arcgis-blog\/author\/jbanuelos","custom_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/08\/Newsroom-Keyart-Wide-1920-x-1080.jpg","primary_product":"ArcGIS Maps SDK for JavaScript","tag_data":[{"term_id":764532,"name":"4.23","slug":"4-23","term_group":0,"term_taxonomy_id":764532,"taxonomy":"post_tag","description":"","parent":0,"count":3,"filter":"raw"},{"term_id":764082,"name":"whats new march 2022","slug":"whats-new-march-2022","term_group":0,"term_taxonomy_id":764082,"taxonomy":"post_tag","description":"","parent":0,"count":27,"filter":"raw"}],"category_data":[{"term_id":738191,"name":"Developers","slug":"developers","term_group":0,"term_taxonomy_id":738191,"taxonomy":"category","description":"","parent":0,"count":420,"filter":"raw"}],"product_data":[{"term_id":761642,"name":"ArcGIS Location Platform","slug":"platform","term_group":0,"term_taxonomy_id":761642,"taxonomy":"product","description":"","parent":36601,"count":213,"filter":"raw"},{"term_id":36831,"name":"ArcGIS Maps SDK for JavaScript","slug":"js-api-arcgis","term_group":0,"term_taxonomy_id":36831,"taxonomy":"product","description":"","parent":36601,"count":361,"filter":"raw"},{"term_id":36601,"name":"Developers","slug":"developers","term_group":0,"term_taxonomy_id":36601,"taxonomy":"product","description":"","parent":0,"count":761,"filter":"raw"}],"primary_product_link":"https:\/\/www.esri.com\/arcgis-blog\/?s=#&products=js-api-arcgis","_links":{"self":[{"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/blog\/1555742","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/blog"}],"about":[{"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/types\/blog"}],"author":[{"embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/users\/246262"}],"replies":[{"embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/comments?post=1555742"}],"version-history":[{"count":0,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/blog\/1555742\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/media?parent=1555742"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/categories?post=1555742"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/tags?post=1555742"},{"taxonomy":"industry","embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/industry?post=1555742"},{"taxonomy":"product","embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/product?post=1555742"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}