提交 7dfd6bd5 编写于 作者: S sushuang

Fix mode not update when setOption in notMerge mode.

上级 804160d8
......@@ -58,8 +58,6 @@ var GlobalModel = Model.extend({
* @type {module:echarts/model/OptionManager}
*/
this._optionManager = optionManager;
// this.settingTask = createTask();
},
setOption: function (option, optionPreprocessorFuncs) {
......
......@@ -69,12 +69,11 @@ var SeriesModel = ComponentModel.extend({
*/
this.seriesIndex = this.componentIndex;
// this.settingTask = createTask();
this.dataTask = createTask({
count: dataTaskCount,
reset: dataTaskReset
}, {model: this});
});
this.dataTask.context = {model: this};
this.mergeDefaultAndTheme(option, ecModel);
......
......@@ -249,22 +249,20 @@ function createSeriesStageTask(scheduler, stageHandler, stageHandlerRecord, ecMo
// Init tasks for each seriesModel only once.
// Reuse original task instance.
var task = seriesTaskMap.get(pipelineId);
if (!task) {
task = createTask({
var task = seriesTaskMap.get(pipelineId)
|| seriesTaskMap.set(pipelineId, createTask({
reset: seriesTaskReset,
count: seriesTaskCount
}, {
model: seriesModel,
ecModel: ecModel,
api: api,
useClearVisual: stageHandler.isVisual && !stageHandler.isLayout,
plan: stageHandler.plan,
reset: stageHandler.reset,
scheduler: scheduler
});
seriesTaskMap.set(pipelineId, task);
}
}));
task.context = {
model: seriesModel,
ecModel: ecModel,
api: api,
useClearVisual: stageHandler.isVisual && !stageHandler.isLayout,
plan: stageHandler.plan,
reset: stageHandler.reset,
scheduler: scheduler
};
pipe(scheduler, seriesModel, task);
}
......@@ -280,18 +278,15 @@ function createSeriesStageTask(scheduler, stageHandler, stageHandlerRecord, ecMo
function createOverallStageTask(scheduler, stageHandler, stageHandlerRecord, ecModel, api) {
var overallTask = stageHandlerRecord.overallTask = stageHandlerRecord.overallTask
|| createTask(
// For overall task, the function only be called on reset stage.
{
reset: overallTaskReset
},
{
ecModel: ecModel,
api: api,
overallReset: stageHandler.overallReset,
scheduler: scheduler
}
);
// For overall task, the function only be called on reset stage.
|| createTask({reset: overallTaskReset});
overallTask.context = {
ecModel: ecModel,
api: api,
overallReset: stageHandler.overallReset,
scheduler: scheduler
};
// Reuse orignal stubs.
var agentStubMap = overallTask.agentStubMap = overallTask.agentStubMap || createHashMap();
......@@ -321,9 +316,9 @@ function createOverallStageTask(scheduler, stageHandler, stageHandlerRecord, ecM
function createStub(seriesModel) {
var pipelineId = seriesModel.uid;
var stub = agentStubMap.get(pipelineId) || agentStubMap.set(pipelineId, createTask(
{plan: prepareData, reset: stubReset, onDirty: stubOnDirty},
{model: seriesModel, overallProgress: overallProgress}
{plan: prepareData, reset: stubReset, onDirty: stubOnDirty}
));
stub.context = {model: seriesModel, overallProgress: overallProgress};
stub.agent = overallTask;
stub.__block = overallProgress;
......
......@@ -5,8 +5,8 @@ import { __DEV__ } from '../config';
* @param {Object} define
* @return See the return of `createTask`.
*/
export function createTask(define, context) {
return new Task(define, context);
export function createTask(define) {
return new Task(define);
}
/**
......@@ -16,9 +16,8 @@ export function createTask(define, context) {
* @param {Function} [define.plan] Returns 'reset' indicate reset immediately.
* @param {Function} [define.count] count is used to determin data task.
* @param {Function} [define.onDirty] count is used to determin data task.
* @param {Object} [context]
*/
function Task(define, context) {
function Task(define) {
define = define || {};
this._reset = define.reset;
......@@ -28,7 +27,9 @@ function Task(define, context) {
this._dirty = true;
this.context = context || {};
// Context must be specified implicitly, to
// avoid miss update context when model changed.
this.context;
}
var taskProto = Task.prototype;
......@@ -125,8 +126,7 @@ function reset(taskIns, skip) {
taskIns._dueIndex = taskIns._outputDueEnd = taskIns._dueEnd = 0;
taskIns._progress = !skip && taskIns._reset && taskIns._reset(
taskIns.context,
taskIns._upstream && taskIns._upstream.context
taskIns.context
);
var downstream = taskIns._downstream;
......
......@@ -26,7 +26,8 @@ function Chart() {
this.renderTask = createTask({
plan: renderTaskPlan,
reset: renderTaskReset
}, {view: this});
});
this.renderTask.context = {view: this};
}
Chart.prototype = {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册