在我的Angular应用程序中,即使导入js文件并在组件内声明变量,我也无法访问组件中的第三方JavaScript函数。
以下是我的代码
import 'mxgraph-js/dist/mxgraph-js.js';
declare var mx: any;
declare var mxEvent: any;
declare var mxGraph: any;
declare var mxRubberband: any;
EXCEPTION: Uncaught (in promise): Error: Error in :0:0 caused by: mx is not defined
Module1Component@http://localhost:8080/f31627203470d3f88f30.3.chunk.js:694:10
Wrapper_Module1Component@/Module1Module/Module1Component/wrapper.ngfactory.js:5:18
anonymous/View_Module1Component_Host0.prototype.createInternal@/Module1Module/Module1Component/host.ngfactory.js:13:32
AppView</AppView.prototype.createHostView@http://localhost:8080/app.js:12320:21
DebugAppView</DebugAppView.prototype.createHostView@http://localhost:8080/app.js:12719:25
ComponentFactory</ComponentFactory.prototype.create@http://localhost:8080/app.js:7294:21
ViewContainerRef_</ViewContainerRef_.prototype.createComponent@http://localhost:8080/app.js:9591:50
RouterOutlet</RouterOutlet.prototype.activate@http://localhost:8080/app.js:57517:29
ActivateRoutes</ActivateRoutes.prototype.placeComponentIntoOutlet@http://localhost:8080/app.js:56827:12
ActivateRoutes</ActivateRoutes.prototype.activateRoutes@http://localhost:8080/app.js:5679
但是当我在index.html中加载相同的js文件时,一切正常。我在很多情况下都面临着这个问题。
答案 0 :(得分:0)
鉴于您已安装mxgraph-js
包,您必须将其导入为:
import * as mx from 'mxgraph-js';
// and use it like
console.log(mx)
console.log(mx.mxEvent);
如果您noImplicitAny
中tsconfig.json
设置为true,则必须为mxgraph-js
声明一个定义,因为mxgraph-js
似乎没有任何类型}。
这样的事情:
// mxgraph.d.ts
declare module "mxgraph-js" {
var mx: any;
export = mx;
}