如何在Jquery函数中使用Angular 4变量

时间:2018-04-12 23:14:21

标签: javascript jquery angular

这个问题已经得到了一些回应here。但这似乎并不适合我。

我正在尝试使用jQuery创建树结构。问题是我不能在jQuery函数中使用声明的angular 4变量。这是代码。



employees = ["Mr. John", "Mr. Steve"];

ngOnInit() {
   (function($) => {
      function OrgChart($container, opts){
          console.log(this.employees);
      }
   });
}




我在控制台声明中看到错误,"在定位ES3或ES5时,严格模式下的块内不允许使用函数声明"

2 个答案:

答案 0 :(得分:3)

第1次(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);
       });

   }
}