0
Amchartがjsonをキャッシュしているようで、グラフも伝説も描いていないようです。Amcharts Pieキャッシングを防止する
最初にモーダルを開くと表示がうまくいきますが、閉じて再度開いても、同じJSONから取得したすべてのデータが表示されますが、グラフは描画されません。キャッシングの問題ですか?
これは私がそれを描いています方法です:
var modelPie = @Html.Raw(jsonPie);
var dataProvider = [];
dataProvider = modelPie.UsefulLifes;
var chartdivdounut = AmCharts.makeChart("chartdivdounut", {
"type": "pie",
"startDuration": 0,
"theme": "light",
"addClassNames": true,
"legend": {
"position": "right",
"marginRight": 0,
"autoMargins": false
},
"innerRadius": "30%",
"defs": {
"filter": [{
"id": "shadow",
"width": "200%",
"height": "200%",
"feOffset": {
"result": "offOut",
"in": "SourceAlpha",
"dx": 0,
"dy": 0
},
"feGaussianBlur": {
"result": "blurOut",
"in": "offOut",
"stdDeviation": 5
},
"feBlend": {
"in": "SourceGraphic",
"in2": "blurOut",
"mode": "normal"
}
}]
},
"dataProvider": dataProvider,
"valueField": "Value",
"titleField": "FieldName",
"showZeroSlices": false,
"labelsEnabled": false,
"export": {
"enabled": true
}
});
chartdivdounut.addListener("init", handleInit);
chartdivdounut.addListener("rollOverSlice", function (e) {
handleRollOver(e);
});
function handleInit() {
chartdivdounut.legend.addListener("rollOverItem", handleRollOver);
}
function handleRollOver(e) {
var wedge = e.dataItem.wedge.node;
wedge.parentNode.appendChild(wedge);
}
は私が部分図でスクリプトセクションは、一度だけ実行していたことに気づき、ここで
あなたのポップアップの表示方法についての詳細が必要です。グラフのポップアップを開くたびに上記のコードを実行していますか?作業デモも役に立ちます。 P.S.チャートはキャッシングを行いません。以前のチャートオブジェクトを最初に破棄せずに同じコンテナに新しいオブジェクトを作成する場合、競合が発生する可能性があります。 – martynasma