0

在ionic3应用程序的任何服务中

import * as jsnx from 'jsnetworkx';

输出错误是这样的

Uncaught (in promise): Error: Cannot find module "lodash/lang/isPlainObject" Error: Cannot find module "lodash/lang/isPlainObject" at webpackMissingModule

我试图这样声明

import jsnx = require('jsnetworkx');

错误是这个

 Uncaught (in promise): ReferenceError: jsnx is not defined ReferenceError: jsnx is not defined at

两个软件包都已安装

...,
"jsnetworkx": "^0.3.4",
"lodash": "^4.17.4",
...

如果有人知道如何在角度 4 o ionic 中做到这一点?

带有节点的库工作正常。

4

1 回答 1

2

我能够通过在 jsnetworkx 旁边安装 d3 v3(jsnetworkx 的依赖项)来完成这项工作

npm install --save d3@^3.0.0
npm install --save jsnetworkx

然后在 angular-cli.json 中加载 d3 脚本

// angular-cli.json
scripts: [
    "../node_modules/d3/d3.min.js"
]

然后将 jsnetworkx 导入到组件中

// component.ts
import * as jsnx from 'jsnetworkx';

现在您可以在该组件中使用它

// component.ts
ngOnInit(){
    // basic jsnetworkx example
    let G = new jsnx.Graph();

    G.addWeightedEdgesFrom([[2,3,10]]);
    G.addStar([3,4,5,6], {weight: 5});
    G.addStar([2,1,0,-1], {weight: 3});

    jsnx.draw(G, {
        element: '#canvas',
        weighted: true,
        edgeStyle: {
            'stroke-width': 10
        }
    });
}

// component.html
<div id="canvas"></div>
于 2017-11-01T17:04:30.487 回答