我正在使用angularjs在谷歌图表上工作。我的功能工作正常,但问题是当我点击图例时它会抛出错误,这可以在浏览器控制台中看到,我知道错误是由于以下代码引起的:
$scope.serverId = chart1.data.rows[selectedItem.row].c[3].v;
alert("serverid : " + $scope.serverId);
当用户点击图表中的任何一行并且它返回ID时,需要上面的代码来获取指定的服务器ID,问题是当用户点击图例时,它必须禁用相应的行图表,当测试此方案时,我可以在浏览器控制台中看到错误。任何输入如何解决该错误?
TypeError: Cannot read property 'c' of undefined
at $$childScopeClass.$scope.seriesSelected
我仍然希望代码获取serverID。 Click here用于演示。请单击demo plunker中的行提示以注意警报,单击图例时,您可以在浏览器控制台中注意到错误。
答案 0 :(得分:1)
如果selectedItem.row
没有值,则默认情况下属性'c'将是未定义的。用检查包裹它以查看父对象是否首先存在。
if (chart1.data.rows[selectedItem.row]) {
$scope.serverId = chart1.data.rows[selectedItem.row].c[3].v;
alert("serverid : " + $scope.serverId);
}