Opened 7 years ago

Closed 3 years ago

#15857 closed defect (patchwelcome)

Unable to get value of the property 'dirty': object is null or undefined

Reported by: daniel.payne Owned by: cjolif
Priority: low Milestone: 1.13
Component: Charting Version: 1.8.0
Keywords: Cc:
Blocked By: Blocking:

Description

When i try to update a graph's series i get the following

Microsoft JScript runtime error: Unable to get value of the property 'dirty': object is null or undefined

Test code

<!DOCTYPE html> <html> <head> <meta charset="utf-8"/> <title>Untitled</title>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <!-- REMOVE FOR PRODUCTION --> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="pragma" content="no-cache">

<meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1,minimum-scale=1,user-scalable=no"/> <meta name="apple-mobile-web-app-capable" content="yes" />

<script>

var dojoConfig = {

isDebug: true, parseOnLoad: false, async: true

};

</script>

<script src="http://ajax.googleapis.com/ajax/libs/dojo/1.8.0/dojo/dojo.js"></script>

<script type="text/javascript">

require([

"dijit/registry", "dojo/dom", "dojo/parser",

"dojox/charting/widget/Chart", "dojox/charting/axis2d/Default", "dojox/charting/plot2d/Areas", "dojox/charting/plot2d/Lines", "dojox/charting/plot2d/Columns",

"dojo/domReady!"

], function (registry, dom, parser) {

parser.parse();

window.testFunction = function (){

registry.byId("chartConsignments").chart.updateSeries("seriesUtilization" , [10,20,50,10,5,60] );

registry.byId("chartConsignments").chart.render();

dom.byId("AnchorDoTest?").innerHTML = 'Test Complete';

};

});

</script>

</head>

<body >

<div dojoType="dojox.charting.widget.Chart" id="chartConsignments" style="width: 100%; height: 180px;" >

<div class="axis" name="axisY" vertical="true" min="-30" max="30" ></div>

<div class="plot" name="plotEmptys" type="Columns" gap="12" tension= "3" markers="false" vAxis="axisY" ></div> <div class="plot" name="plotUtilizations" type="Columns" gap="10" tension= "3" markers="false" vAxis="axisY" ></div>

<div class="series" name="seriesEmptyRunning" plot="plotEmptys"

data="-21, -12, -21.3, -23.2, -6.3, -100, -12.3, -27.3">

</div>

<div class="series" name="seriesUtilization" plot="plotUtilizations"

data="26.8, 26.2, 27.4, 25.3, 26.4, 0.0, 26.5, 26.3">

</div>

</div>

<a href="#" onclick="window.testFunction();">Run Test</a>

</body> </html>

Change History (5)

comment:1 Changed 7 years ago by bill

Component: GeneralCharting
Owner: set to Eugene Lazutkin

comment:2 Changed 7 years ago by daniel.payne

tried replacing updateSeries with

registry.byId("chartConsignments").chart.series[0].update( [10,20,50,10] );

still error in same place

WORKAROUND

removeSeries() addSeries() render()

example:

registry.byId("chartConsignments").chart.removeSeries("seriesUtilization"); registry.byId("chartConsignments").chart.addSeries("seriesUtilization", [1, 2, 3, 4, 5], {plot: "plotUtilizations"} ); registry.byId("chartConsignments").chart.render();

comment:3 Changed 7 years ago by cjolif

Owner: changed from Eugene Lazutkin to cjolif
Status: newassigned

comment:4 Changed 7 years ago by cjolif

Priority: undecidedlow

I guess this should work in theory however I would recommend you adding a x axis to your chart. If you do that (you can use an invisible axis if you want) it will work without waiting for a fix and this is probably a simpler workaround than the one your proposed.

comment:5 Changed 3 years ago by dylan

Milestone: tbd1.12
Resolution: patchwelcome
Status: assignedclosed

Given that no one has shown interest in creating a patch in the past 3+ years, I'm closing this as patchwelcome.

Note: See TracTickets for help on using tickets.