![](/img/trans.png)
[英]Is it not possible for a function to return a constructor and create a new instance?
[英]How to create an instance with the new constructor for every node in a json?
我将要开始编写一个组织结构图的应用程序,并且我将使用该库 ,在该库中,他们提供的代码示例非常清楚:
var options = new primitives.orgdiagram.Config();
var items = [
new primitives.orgdiagram.ItemConfig({
id: 0,
parent: null,
title: "Scott Aasrud",
description: "VP, Public Sector",
image: "demo/images/photos/a.png"
}),
new primitives.orgdiagram.ItemConfig({
id: 1,
parent: 0,
title: "Ted Lucas",
description: "VP, Human Resources",
image: "demo/images/photos/b.png"
}),
new primitives.orgdiagram.ItemConfig({
id: 2,
parent: 0,
title: "Joao Stuger",
description: "Business Solutions, US",
image: "demo/images/photos/c.png"
})
];
options.items = items;
options.cursorItem = 0;
options.hasSelectorCheckbox = primitives.common.Enabled.True;
jQuery("#basicdiagram").orgDiagram(options);
对我来说很奇怪的是items数组,我不会将该数组放在要构建App的主文件中。 实际上,数据将来自json,因此,请想象items数组来自单独的json文件,因此。 。 。 为了将数据放入json,然后在主文件中调用它,并为该json中的每个节点创建实例,例如new primitives.orgdiagram.ItemConfig({ . . . })
,我该怎么做?
您有什么建议?
您可以使用[].map
。 它使用由每个数组项作为参数调用的函数返回的值创建一个新数组:
var items = JSON.parse(myjson).map(function(item) {
return new primitives.orgdiagram.ItemConfig(item);
});
实际上,出于代码可读性的考虑,已经通过新对象定义了节点,以便使用户参考适当的对象类型的选项。 Chart也支持JSON对象。
var options = new primitives.orgdiagram.Config();
var items = [
{
id: 0,
parent: null,
title: "Scott Aasrud",
description: "VP, Public Sector",
image: "demo/images/photos/a.png"
},
{
id: 1,
parent: 0,
title: "Ted Lucas",
description: "VP, Human Resources",
image: "demo/images/photos/b.png"
},
{
id: 2,
parent: 0,
title: "Joao Stuger",
description: "Business Solutions, US",
image: "demo/images/photos/c.png"
}
];
options.items = items;
options.cursorItem = 0;
options.hasSelectorCheckbox = primitives.common.Enabled.True;
jQuery("#basicdiagram").orgDiagram(options);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.