javascript - 在 jquery 中访问 angular2 变量

标签 javascript jquery angular typescript

我在我的 angular2 项目中使用 jQuery 来做一些事情。但是我无法设法使用我在 angular2 中声明的变量在 jQuery 中使用。我有这样的东西:

export class AddExerciseComponent implements OnInit {

  parameters:Array<string> = ["FU"];

  constructor() { }

  ngOnInit() {


    $('.chips').on('chip.add', function(e, chip){
      this.parameters.push(chip.data);
      console.log(this.selectedValue);
    });
}

这会给我一个参数未定义的错误。我想这是因为我使用了 this。我还能做什么?

最佳答案

您需要使用箭头函数表达式 (() => {}) 将this 保持在范围内。尝试:

export class AddExerciseComponent implements OnInit {

parameters:Array<string> = ["FU"];

constructor() { }

ngOnInit() {
// removed function keyword and added () => {} syntax
  $('.chips').on('chip.add', (e, chip) => {  
    this.parameters.push(chip.data);
    console.log(this.selectedValue);
  });
}

当您将回调作为常规旧函数传递时,JavaScript 不会将您的回调视为在调用函数的范围内,从而使 this 无法用于从您认为的范围内调用数据在。通过使用箭头函数,范围被保存并且 this 可用于按预期访问数据。

关于javascript - 在 jquery 中访问 angular2 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39753505/

相关文章:

javascript - Firefox 扩展的线程行为可能吗?

javascript - 未捕获的类型错误 : Cannot call method 'toLowerCase' of undefined

javascript - 如何向在 jquery 中动态创建的元素添加操作?

jquery - 当其父项设置为不显示时,如何获取对象的最小高度?

Angular 4 - '.ts' 文件中文本的 ionic 3 翻译

java - 使用 Angular 2 前端在 Heroku Java 应用程序上部署

angular - 错误中的错误 TS2688 : Cannot find type definition file for 'jest'

javascript - 幻灯片之间具有固定元素的 Fullpage.js

javascript - 给定二叉搜索树和两个节点 n1 和 n2,编写一个函数来计算两个节点之间的距离

jquery.load 不适用于包含部分 html 的文件