Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
半栈学徒
incubator-echarts
提交
bfa66493
I
incubator-echarts
项目概览
半栈学徒
/
incubator-echarts
与 Fork 源项目一致
从无法访问的项目Fork
通知
5
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
I
incubator-echarts
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
bfa66493
编写于
2月 19, 2020
作者:
P
pissang
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fix: rollback previous commit about Model only support object becuase of performance drops
上级
69ad6bfe
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
12 addition
and
7 deletion
+12
-7
src/data/List.ts
src/data/List.ts
+0
-4
src/model/Model.ts
src/model/Model.ts
+12
-3
未找到文件。
src/data/List.ts
浏览文件 @
bfa66493
...
...
@@ -1555,13 +1555,9 @@ class List {
/**
* Get model of one data item.
*/
// FIXME Model proxy ?
getItemModel
(
idx
:
number
):
Model
{
var
hostModel
=
this
.
hostModel
;
var
dataItem
=
this
.
getRawDataItem
(
idx
)
as
ModelOption
;
if
(
this
.
_rawData
.
pure
||
!
isDataItemOption
(
dataItem
))
{
dataItem
=
{
value
:
dataItem
};
}
return
new
Model
(
dataItem
,
hostModel
,
hostModel
&&
hostModel
.
ecModel
);
}
...
...
src/model/Model.ts
浏览文件 @
bfa66493
...
...
@@ -42,6 +42,14 @@ import { Dictionary } from 'zrender/src/core/types';
var
mixin
=
zrUtil
.
mixin
;
var
inner
=
makeInner
();
// Since model.option can be not only `Dictionary` but also primary types,
// we do this conditional type to avoid getting type 'never';
type
Key
<
Opt
>
=
Opt
extends
Dictionary
<
any
>
?
keyof
Opt
:
string
;
type
Value
<
Opt
,
R
>
=
Opt
extends
Dictionary
<
any
>
?
(
R
extends
keyof
Opt
?
Opt
[
R
]
:
ModelOption
)
:
ModelOption
;
/**
* @alias module:echarts/model/Model
* @constructor
...
...
@@ -132,11 +140,12 @@ class Model<Opt extends ModelOption = ModelOption> {
):
Opt
[
R
]
{
var
option
=
this
.
option
;
var
val
:
Opt
[
R
]
=
option
==
null
?
null
:
option
[
key
];
var
val
=
option
==
null
?
option
:
option
[
key
];
if
(
val
==
null
)
{
var
parentModel
=
!
ignoreParent
&&
getParent
(
this
,
key
as
string
);
if
(
parentModel
)
{
val
=
(
parentModel
as
Model
<
Opt
>
).
getShallow
(
key
);
// FIXME:TS do not know how to make it works
val
=
parentModel
.
getShallow
(
key
);
}
}
return
val
;
...
...
@@ -229,7 +238,7 @@ function doGet(obj: ModelOption, pathArr: string[], parentModel?: Model<Dictiona
continue
;
}
// obj could be number/string/... (like 0)
obj
=
obj
[
pathArr
[
i
]]
;
obj
=
(
obj
&&
typeof
obj
===
'
object
'
)
?
obj
[
pathArr
[
i
]
as
keyof
ModelOption
]
:
null
;
if
(
obj
==
null
)
{
break
;
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录