2016-08-10 5 views
0

Es scheint, dass Amchart den JSON zwischenspeichert und es weder das Diagramm noch die Legende zeichnet.Amcharts Pie Prevent Caching

Wenn ich das Modal zum ersten Mal öffne, wird es gut angezeigt, aber wenn ich es schließe und wieder öffne, werden alle Daten in Beschriftungen angezeigt (aus demselben JSON), aber das Diagramm wird nicht gezeichnet. Ist es ein Caching-Problem?

Dies ist die Art, wie ich es bin Zeichnung:

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); 
} 

Code eingeben hier

+0

Benötigen Sie weitere Informationen darüber, wie Sie Ihr Popup anzeigen? Führen Sie den obigen Code jedes Mal aus, wenn Sie ein Chart-Popup öffnen? Arbeitsdemo wäre auch hilfreich. P.S. Das Diagramm führt kein Caching durch. Wenn Sie das neue Objekt in demselben Container erstellen, ohne zuvor das vorherige Diagrammobjekt zu zerstören, können Konflikte auftreten. – martynasma

Antwort

0

ich, dass der Skript Abschnitt in der Teilansicht realisiert wurde nur ein einziges Mal ausgeführt wird.

Scheint etwas durcheinander zu sein. Ich habe diesen Teil des Codes neu geschrieben und er begann ordnungsgemäß zu funktionieren.