Brandon,
Not sure what you are missing but here is a working sample:
<!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>Labeling features client-side</title>
<link rel="stylesheet" href="https://js.arcgis.com/3.24/esri/css/esri.css">
<style>
html, body, #map {
height: 100%; width: 100%; margin: 0; padding: 0;
}
</style>
<script src="https://js.arcgis.com/3.24/"></script>
<script>
var map;
require([
"esri/map",
"esri/geometry/Extent",
"esri/geometry/Point",
"esri/layers/FeatureLayer",
"esri/symbols/SimpleLineSymbol",
"esri/symbols/SimpleFillSymbol",
"esri/symbols/TextSymbol",
"esri/renderers/SimpleRenderer",
"esri/layers/LabelClass",
"esri/Color",
"esri/graphic",
"dojo/domReady!"
], function(Map, Extent, Point, FeatureLayer,
SimpleLineSymbol, SimpleFillSymbol,
TextSymbol, SimpleRenderer, LabelClass, Color, Graphic)
{
var bbox = new Extent({"xmin": -1940058, "ymin": -814715, "xmax": 1683105, "ymax": 1446096, "spatialReference": {"wkid": 102003}});
map = new Map("map", {
extent: bbox,
showLabels : true
});
var text = new TextSymbol("Hello World");
var pt = new Point(-118.5, 34.5, map.spatialReference);
var graphic = new Graphic(pt, text);
var statesColor = new Color("#666");
var statesLine = new SimpleLineSymbol("solid", statesColor, 1.5);
var statesSymbol = new SimpleFillSymbol("solid", statesLine, null);
var statesRenderer = new SimpleRenderer(statesSymbol);
var statesUrl = "https://sampleserver6.arcgisonline.com/arcgis/rest/services/Census/MapServer/3";
var states = new FeatureLayer(statesUrl, {
id: "states",
outFields: ["*"]
});
states.setRenderer(statesRenderer);
var statesLabel = new TextSymbol().setColor(statesColor);
statesLabel.font.setSize("14pt");
statesLabel.font.setFamily("arial");
var json = {
"labelExpressionInfo": {"value": "{STATE_NAME}"}
};
var labelClass = new LabelClass(json);
labelClass.symbol = statesLabel;
states.setLabelingInfo([ labelClass ]);
map.addLayer(states);
map.on("load", function() {
map.graphics.add(graphic);
});
});
</script>
</head>
<body>
<div id="map"></div>
</body>
</html>