diff --git a/src/chart/graph/GraphView.js b/src/chart/graph/GraphView.js index bb66457752a538c2e95c58d107de7870dfdfccc6..650a6da500908551859e392700d8dbd96d898318 100644 --- a/src/chart/graph/GraphView.js +++ b/src/chart/graph/GraphView.js @@ -5,6 +5,8 @@ define(function (require) { var LineDraw = require('../helper/LineDraw'); var RoamController = require('../../component/helper/RoamController'); + var modelUtil = require('../../util/model'); + require('../../echarts').extendChartView({ type: 'graph', @@ -39,7 +41,27 @@ define(function (require) { symbolDraw.updateData(data); - lineDraw.updateData(data.graph.edgeData, null, null); + var edgeData = data.graph.edgeData; + var rawOption = seriesModel.option; + var formatModel = modelUtil.createDataFormatModel( + seriesModel, edgeData, rawOption.edges || rawOption.links + ); + formatModel.formatTooltip = function (dataIndex) { + var params = this.getDataParams(dataIndex); + var rawDataOpt = params.data; + var html = rawDataOpt.source + ' > ' + rawDataOpt.target; + if (params.value) { + html += ':' + params.value; + } + return html; + }; + lineDraw.updateData(edgeData, null, null); + edgeData.eachItemGraphicEl(function (el) { + el.traverse(function (child) { + child.hostModel = formatModel; + }); + }); + // Save the original lineWidth data.graph.eachEdge(function (edge) { @@ -57,6 +79,10 @@ define(function (require) { this._updateNodeAndLinkScale(); + this._updateController(seriesModel, coordSys, api); + }, + + _updateController: function (seriesModel, coordSys, api) { var controller = this._controller; controller.rect = coordSys.getViewRect(); diff --git a/src/data/List.js b/src/data/List.js index 6c905711ef7a8aa61f8e7f2c30099cb235ef5172..b6aac18c7a3b4f11d5ba1857d2479cd5a99b3c69 100644 --- a/src/data/List.js +++ b/src/data/List.js @@ -460,7 +460,11 @@ define(function (require) { idx = this.getRawIndex(idx); var itemOpt = this._rawData[idx]; var valueProp = this._valueProp; - if (itemOpt && itemOpt.hasOwnProperty(valueProp)) { + // FIXME Value may not exist in data item object when data is links + // if (itemOpt && itemOpt.hasOwnProperty(valueProp)) { + // return itemOpt[valueProp]; + // } + if (zrUtil.isObject(itemOpt) && !zrUtil.isArray(itemOpt)) { return itemOpt[valueProp]; } return itemOpt;