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.

War es hilfreich?

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 ....

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top