提交 07b09d28 编写于 作者: L lang

Enhancement when legend data is updated with selectedMode: single

上级 5c884a9b
...@@ -20,7 +20,7 @@ define(function (require) { ...@@ -20,7 +20,7 @@ define(function (require) {
var store = getStore(zr); var store = getStore(zr);
var record = store[resourceKey]; var record = store[resourceKey];
if (record.userKey === userKey) { if (record && (record.userKey === userKey)) {
store[resourceKey] = null; store[resourceKey] = null;
} }
}, },
......
...@@ -20,19 +20,28 @@ define(function(require) { ...@@ -20,19 +20,28 @@ define(function(require) {
this.mergeDefaultAndTheme(option, ecModel); this.mergeDefaultAndTheme(option, ecModel);
option.selected = option.selected || {}; option.selected = option.selected || {};
},
mergeOption: function (option) {
LegendModel.superCall(this, 'mergeOption', option);
},
this._updateData(ecModel); optionUpdated: function () {
this._updateData(this.ecModel);
var legendData = this._data; var legendData = this._data;
// If has any selected in option.selected
var selectedMap = this.option.selected;
// If selectedMode is single, try to select one // If selectedMode is single, try to select one
if (legendData[0] && this.get('selectedMode') === 'single') { if (legendData[0] && this.get('selectedMode') === 'single') {
var hasSelected = false; var hasSelected = false;
for (var name in selectedMap) { // If has any selected in option.selected
if (selectedMap[name]) { for (var i = 0; i < legendData.length; i++) {
var name = legendData[i].get('name');
if (this.isSelected(name)) {
// Force to unselect others
this.select(name); this.select(name);
hasSelected = true; hasSelected = true;
break;
} }
} }
// Try select the first if selectedMode is single // Try select the first if selectedMode is single
...@@ -40,12 +49,6 @@ define(function(require) { ...@@ -40,12 +49,6 @@ define(function(require) {
} }
}, },
mergeOption: function (option) {
LegendModel.superCall(this, 'mergeOption', option);
this._updateData(this.ecModel);
},
_updateData: function (ecModel) { _updateData: function (ecModel) {
var legendData = zrUtil.map(this.get('data') || [], function (dataItem) { var legendData = zrUtil.map(this.get('data') || [], function (dataItem) {
if (typeof dataItem === 'string') { if (typeof dataItem === 'string') {
......
...@@ -1019,7 +1019,14 @@ define(function (require) { ...@@ -1019,7 +1019,14 @@ define(function (require) {
* Dispose instance * Dispose instance
*/ */
echartsProto.dispose = function () { echartsProto.dispose = function () {
if (this._disposed) {
if (__DEV__) {
console.warn('Instance ' + this.id + ' has been disposed');
}
return;
}
this._disposed = true; this._disposed = true;
var api = this._api; var api = this._api;
var ecModel = this._model; var ecModel = this._model;
...@@ -1030,6 +1037,7 @@ define(function (require) { ...@@ -1030,6 +1037,7 @@ define(function (require) {
chart.dispose(ecModel, api); chart.dispose(ecModel, api);
}); });
// Dispose after all views disposed
this._zr.dispose(); this._zr.dispose();
delete instances[this.id]; delete instances[this.id];
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册