Following is my complete code. I am using Arcgis 10.2.In log sub-domain is showing undefined.
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="viewport" content="initial-scale=1, maximum-scale=1,user-scalable=no">
<title>Query distinct values without map</title>
<script src="https://js.arcgis.com/3.22/"></script>
<script>
require([
"esri/layers/CodedValueDomain",
"esri/InfoTemplate","dojo/_base/array",
"esri/layers/FeatureLayer",
"esri/layers/Field",
"esri/tasks/QueryTask",
"esri/tasks/query",
"dojo/_base/lang",
"dojo/dom",
"dojo/on",
"dojo/domReady!"
], function(
CodedValueDomain,
InfoTemplate,array,
FeatureLayer,
Field,
QueryTask,
Query,
lang,
dom,
on
) {
var queryTask = new QueryTask("http://localhost:6080/arcgis/rest/services/mydata/MapServer/1");
var query = new Query();
query.returnGeometry = false;
query.returnDistinctValues = true;
query.outFields = [
"SubtypeCD"
];
on(dom.byId("execute"), "click", execute);
function execute () {
query.where = '1=1';
queryTask.execute(query, showResults);
}
function showResults (results) {
var resultItems = [];
var resultCount = results.features.length;
for (var i = 0; i < resultCount; i++) {
var featureAttributes = results.features.attributes;
for (var attr in featureAttributes) {
var test=getSubtypeDomain(queryTask,featureAttributes[attr] ,"SubtypeCD");
//var codedValue = _getCodedValue(queryTask,"SubtypeCD",featureAttributes[attr])
// resultItems.push("<b>" + attr + ":</b> " + featureAttributes[attr] + "<br>");
resultItems.push("<b>" + attr + ":</b> " + test+ "<br>");
}
resultItems.push("<br>");
}
dom.byId("info").innerHTML = resultItems.join("");
}
var subTypeVal;
function getSubtypeDomain (featureLayer,fieldVal, fieldName){
if (featureLayer.typeIdField!=null) {
console.log("Have Subtypes");
if (fieldName==featureLayer.typeIdField) {
array.forEach(featureLayer.types, lang.hitch(this, function (lsf) {
if (fieldVal==lsf.id){
fieldVal=lsf.name;
subTypeVal=lsf.id;
}
}));
} else {
array.forEach(featureLayer.types, lang.hitch(this, function (lsf) {
if (lsf.id==subTypeVal){
array.forEach(lsf.domains[fieldName].codedValues, lang.hitch(this, function (domain) {
if (fieldVal==domain.code){
fieldVal=domain.name;
}
}));
}
}));
}
} else {
console.log("No Subtypes");
subTypeVal=null;
array.forEach(featureLayer.fields, lang.hitch(this, function (ldf) {
if (ldf.name==fieldName){
if (ldf.domain){
array.forEach(ldf.domain.codedValues, lang.hitch(this, function(domain){
if (fieldVal==domain.code){
fieldVal=domain.name;
}
}));
}
}
}));
}
console.log( fieldVal);
return fieldVal;
};
});
</script>
</head>
<body>
<input id="execute" type="button" value="Get Details">
<br />
<br />
<div id="info" style="padding:5px; margin:5px; background-color:#eee;">
</div>
</body>
</html>