Javascript 在Angular 2+;中调用第三方节点包时缺少原型函数;
我试图在angular 2+项目中使用第三方节点模块 与npm安装一起安装--保存模块名 该函数位于名为Foo.js的文件中,如下所示:Javascript 在Angular 2+;中调用第三方节点包时缺少原型函数;,javascript,angular,Javascript,Angular,我试图在angular 2+项目中使用第三方节点模块 与npm安装一起安装--保存模块名 该函数位于名为Foo.js的文件中,如下所示: var foo = function(param1, param2) { ... this.init(); } foo.protoype = { constructor: foo, init: function(){ ... }, ... } module.exports = foo; 节
var foo = function(param1, param2) {
...
this.init();
}
foo.protoype = {
constructor: foo,
init: function(){
...
},
...
}
module.exports = foo;
节点模块的index.js如下所示:
var ModuleName = require("./src/ModuleName");
ModuleName.foo = require("./src/Foo");
module.exports = ModuleName;
我试图在指令中使用该模块:
import { Directive, OnInit } from '@angular/core';
import { ModuleName } from "ModuleName"
@Directive({
selector: '[customDirective]'
})
export class CustomDirective implements OnInit {
constructor() {
...
}
ngOnInit() {
let poorlyNamedVariable = ModuleName.foo(param1, param2);
}
}
调用foo时,它会产生错误类型错误:this.init不是函数
foo中的console.log(this)
显示了ModuleName的一个实例,而ModuleName又有一个foo
的实例,它有一个定义了init
的原型
我怀疑这个问题源于某种范围问题,但对于Angular和Node来说,我还是太新了,无法解决这个混乱 对于CommonJS模块,使用“ModuleName”中的
import*作为ModuleName。相同的结果this.init不是函数
@午餐盒您要使用哪个模块?这可能是一个错误bug@Lunchboximport ModuleName=require(“ModuleName”)
可能会解决这个问题。请让我知道它是否有效。