这个问题已经得到了一些回应here。但这似乎并不适合我。
我正在尝试使用jQuery创建树结构。问题是我不能在jQuery函数中使用声明的angular 4变量。这是代码。
employees = ["Mr. John", "Mr. Steve"];
ngOnInit() {
(function($) => {
function OrgChart($container, opts){
console.log(this.employees);
}
});
}

我在控制台声明中看到错误,"在定位ES3或ES5时,严格模式下的块内不允许使用函数声明"
答案 0 :(得分:3)
employees of undefined
问题)绑定"这个"对于组件,请使用箭头符号表示函数:
($) => { console.log(this.employees)}
而不是function($) { ... }
你可以在Angular组件的另一个地方声明你的另一个内部函数,然后引用它:
ngOnInit() {
// this declaration is nonsense to me, this will declare a function that is never called and exists only here, but anyway...
($) => {
// you can call OrgChart here :
this.OrgChart()
}
}
OrgChart($container, opts) {
console.log(this.employees);
}
答案 1 :(得分:0)
在启动jquery块之前,您需要将角度分量参考存储在另一个变量中。
export class PlanGruposComponent implements OnInit {
group = 'Meu grupo';
OnInit() {
//reference of currect component object
let temporaryThis = this;
$(document).ready(function () {
console.log("Print : " + temporaryThis.group);
});
}
}