Anzeige Spezielle Etiketten aus dem Datenspeicher mit dojox.charting
-
21-09-2019 - |
Frage
Ich bin mit dem dojox.charting.widget.Chart2D
und ich versuche, die Daten aus einem dojo.data.ItemFileReadStore
abzurufen. Ich kann die Daten, und alles funktioniert und Displays abrufen, außer ich nicht einen Weg, um Anzeige benutzerdefinierte Etiketten auf die Gegenstände zu finden scheinen. Mein HTML-Schnipsel ist:
<div dojoType="dojo.data.ItemFileReadStore" jsId="chartDataStore"
url="json/archiveinfo.json.php"></div>
<div dojoType="dojox.charting.widget.Chart2D" id="chartTest"
theme="dojox.charting.themes.PlotKit.blue" style="width: 300px; height: 300px;">
<div class="plot" name="default" type="Pie" fontColor="black" htmlLabels="false"
radius="100"></div>
<div class="series" name="Series A" store="chartDataStore" field="y"
label="text" valueFn="Number(x)"></div>
<div class="action" type="Tooltip"></div>
<div class="action" type="MoveSlice"></div>
</div>
Und meine JSON vom ItemFileReadStore ist:
{"identifier":"id","labelAttribute":"text","items":
[
{"id":1,"y":55,"text":"Free"},
{"id":2,"y":45,"text":"Used"}
]
}
Ich habe versucht, das Label-Attribut in der Serie Einstellung und die labelAttribute
im JSON gesetzt haben. Ich habe auch nur label
im JSON versucht und es hat nicht funktioniert. Wenn ich die Daten als JSON in einem array
liefern oder die data
direkt in der Serie liefern, erhalte ich die Etiketten an der Arbeit. Ich wollte es wirklich flexiblere obwohl machen, indem die Daten über ein Datastor bereitstellt.
Lösung
Die Art und Weise, es zu tun ist Ihre JSON ein wenig und zu aktualisieren zu ändern Attribute im HTML entspricht.
JSON:
{
"items": [
{"id":1, "slice": {"y":55,"text":"Free"}},
{"id":2, "slice": {"y":45,"text":"Used"}}
]
}
Die einzige sinnvolle Änderung ist zu trennen pie spezifischen Daten in einem Unterobjekt (slice
) der Einfachheit halber.
HTML (nur die Speicher-bezogene Linie geändert werden soll):
<div class="series" name="Series A"
store="chartDataStore" field="slice"></div>
Lassen Sie mich wissen, wie es geht.
Andere Tipps
Ich hatte ähnliche Probleme mit benutzerdefinierten Beschriftungen Gesicht, obwohl ich eine programmatischen Art und Weise wurde mit der Tabelle auf div zu schaffen .... Hoffe, das hilft jemand ....
var mytooltip = new dojox.charting.action2d.Tooltip(mychart,"default",
{text: function(e) {
var tooltiptext = <construct ur custom label here>
return tooltiptext;
}
});
mychart
ist die Variable, die ich verwendet habe den Diagramm-Widget zu erstellen ....