说好不用 jquery,就坚决不用 jquery。
dabeng/orgchart.js 是这个的:https://github.com/dabeng/OrgChart.js/blob/master/src/orgchart.js
export default class OrgChart {
constructor(options) {
this._name = 'OrgChart';
Promise.prototype.finally = function (callback) {
let P = this.constructor;
return this.then(
value => P.resolve(callback()).then(() => value),
reason => P.resolve(callback()).then(() => { throw reason; })
);
};
let that = this,
defaultOptions = {
那该用 importmaps 怎么引用呢?
无论我使用 pin_from_all "app/javascript/src/orgchart.js"
还是 在 application.js 中 import "./src/orgchart"
都无法使用它。
<div id="chart-container">
abcd
</div>
<script>
let datascource = {
'name': 'Lao Lao',
'title': 'general manager',
'children': [
{ 'name': 'Bo Miao', 'title': 'department manager' },
{ 'name': 'Su Miao', 'title': 'department manager',
'children': [
{ 'name': 'Tie Hua', 'title': 'senior engineer' },
{ 'name': 'Hei Hei', 'title': 'senior engineer',
'children': [
{ 'name': 'Pang Pang', 'title': 'engineer' },
{ 'name': 'Xiang Xiang', 'title': 'UE engineer' }
]
}
]
},
{ 'name': 'Yu Jie', 'title': 'department manager' },
{ 'name': 'Yu Li', 'title': 'department manager' },
{ 'name': 'Hong Miao', 'title': 'department manager' },
{ 'name': 'Yu Wei', 'title': 'department manager' },
{ 'name': 'Chun Miao', 'title': 'department manager' },
{ 'name': 'Yu Tie', 'title': 'department manager' }
]
},
orgchart = new OrgChart({
'chartContainer': '#chart-container',
'data' : datascource,
'depth': 2,
'nodeContent': 'title'
});
</script>
一直报错:Uncaught ReferenceError: OrgChart is not defined
。
如果直接在页面里引用,把模块里的 export default
删除,就能用了。
<script src="http://192.168.3.136:3000/orgchart.js"></script>
把 export default 删除,是没问题的,正常能用。