Angular 布尔变量在角度中未定义

Angular 布尔变量在角度中未定义,angular,typescript,Angular,Typescript,我有一个角度分量,其中我定义了两个布尔变量: editingPercent: boolean = true; editingCap: boolean = false; 在相应的html文件中,我有一个ceckbox,并相应地在ts文件中设置此变量: checkedChanged(e) { this.editingPercent = !e.value; console.log(this.editingPercent); this.editingCap = e.va

我有一个角度分量,其中我定义了两个布尔变量:

  editingPercent: boolean = true;
  editingCap: boolean = false;
在相应的html文件中,我有一个ceckbox,并相应地在ts文件中设置此变量:

checkedChanged(e) {
    this.editingPercent = !e.value;
    console.log(this.editingPercent);
    this.editingCap = e.value;
    console.log(this.editingCap);
  }
一切正常,控制台记录错误和真实

现在,我想在组件的其他地方,在自定义验证回调中使用这些变量,如下所示:

  capValidation(e) {
    console.log(this.editingCap + ' ' + e.value);
    if (this.editingCap && e.value === undefined) {
      return false;
    }
    else { return true; }
  }
但是控制台说,
this.editingCap
未定义。为什么?

谢谢


ps:如果我能正常工作,验证回调将简化为一行代码。

将事件处理程序更改为lambda

checkedChanged = (e) => {
    this.editingPercent = !e.value;
    console.log(this.editingPercent);
    this.editingCap = e.value;
    console.log(this.editingCap);
}

将事件处理程序更改为lambda

checkedChanged = (e) => {
    this.editingPercent = !e.value;
    console.log(this.editingPercent);
    this.editingCap = e.value;
    console.log(this.editingCap);
}

如何触发回拨?从html?从打字稿?如果需要,请提供更完整的代码示例can@jonrsharpe,当我看到你的评论时,我想起了我的另一个问题。迟早我会记住的。谢谢,这就是问题所在。啊,著名的
这个
问题。将事件处理程序更改为箭头函数如何触发回调?从html?从打字稿?如果需要,请提供更完整的代码示例can@jonrsharpe,当我看到你的评论时,我想起了我的另一个问题。迟早我会记住的。谢谢,这就是问题所在。啊,著名的
这个
问题。将事件处理程序更改为箭头函数