I've buildt a halfly harcoded popup builder widget, but i don't know how to push fields from relationships into my popup div. I know how to do it in the ObjOriented way, but it's not right for me. Example:
``` var popupTemplate = new PopupTemplate({ "title": "Beverly Hills Trees By Block", "fieldInfos": [{ "fieldName": "Point_Count", "label": "Count of Points", "format": { "places": 0, "digitSeparator": true } }, { "fieldName": "relationships/0/Point_Count_COMMON", "label": "Sum of species tree count", "format": { "places": 0, "digitSeparator": true }, ```
I show my scructure: first function creates the popup content div, the second calls it, if i want popup. But i couldnt find the documentation, how to get a graphic's relationships, i can only get the attributes. Any idea?
``` function _getPopupTextContent(graphic) { let popupContent = "" popupContent += "<div style='padding:5px;background-color:rgb(251,183,46)'><b>" + "</b></div>" + "<table style='width:100%;'>" console.log(graphic) //popupContent += "<tr>"+graphic.attributes["relationships/1/FIELD"]+"</tr>" not working //undefined for (var property in graphic.attributes){ console.log((property.toString()).split(/[.]/)) var dbName = (property.toString()).split(/[.]/)[1] if (dbName !== undefined){ var dbTableName = dbName.split(/[_]/)[3]; //console.log(maximoTableName) var fieldName = (property.toString()).split(/[.]/)[2]; let value = graphic.attributes["DB.DB_ESRI_V_"+dbTableName+"_TT."+fieldName] if(fieldName == 'FIELDNAME1'&& value !== undefined){ popupContent += "<tbody><tr><td id = 'attrtd'><b>Label</b></td><td id = 'attrtd''>" + value } if(fieldName == 'FIELDNAME2'&& value !== undefined){ popupContent += "<tr><td id = 'attrtd'><b>Label</b></td><td id = 'attrtd''>" + value } if(fieldName == 'FIELDNAME3'){ popupContent += "<tr><td id = 'attrtd'><b>Label</b></td><td id = 'attrtd''>" + value } if(fieldName == 'FIELDNAME4'&& value !== undefined){ popupContent += "<tr><td id = 'attrtd'><b>Label</b></td><td id = 'attrtd''>" + value } } popupContent += "</td></tr>" + "</td></tr>" + "</a></td></tr>" + "</tbody></table>" return popupContent; } function _joinAndCreateInfoTemplate(){ var mainLayer = _getWebmapOperationalLayerById(subStationLyrId); for(var title in popupSubIdDict){ var popupName = _removeAccents(title).toLowerCase(); // subLayertitle var subId = popupSubIdDict[title]; //sub id mainLayer.getLayerObject().then(function (subLyrObj) { if (popupName == 'sublayer'){ popupName = new InfoTemplate(); popupName.setTitle(title); popupName.setContent(_getPopupTextContent); } subLyrObj.infoTemplates[subId] = { infoTemplate: new InfoTemplate(popupName) }; ```
So I'm trying to make a relationship query, but i run into an error: h.join is not a function.
what can be the problem? My related tables doesn't have objectId-s, they are just simply imported into the mxd.
layerList[14] is an object, it has a key, relationships: