javascript - 无法读取未定义的属性 'input'

标签 javascript angular error-handling undefined

我有一个获取用户输入的功能。该函数内部是一个回调函数,用于检查用户的输入。调用回调函数时,出现错误,错误错误:无法读取未定义的属性“输入”。
的HTML

<input id="answer" type="number" (input)= "getInput($event, checkAnswer)" >
JS
input = null;
answer = null;


getInput(event, chkAns){

this.input = Number(event.target.value);

chkAns();

console.log("Input :" + " " + this.input);

 }

 checkAnswer(){

  if(this.input === this.answer){
  
    this.multiply();

  } else{

     console.log(this.input + " " + "is incorrect" + " "  + typeof 
     this.answer);
  }
    
}

最佳答案

您可以做以下三件事之一:

  • 使传递的函数(chkAns)具有原子性-也就是说,它不需要特定状态(this.input,this.answer),并在调用该函数时获取那些参数(因此,您将使用chkAns()
  • 代替chkAns(this.input, this.answer)
  • 不要从模板传递它,而是在this.CheckAnswer()内调用getInput
  • 在调用chkAns时将this顶点传递给chkAns:chkAns.call(this)-我认为此选项是最不“折衷”的选项

  • 这是第二个选项的有效stackblitz

    关于javascript - 无法读取未定义的属性 'input',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65749641/

    相关文章:

    sql-server - 记录 SQL 错误

    javascript - 如何反转 jQuery css 样式?

    angular - 无法绑定(bind)到输入变量,因为它不是组件的已知属性

    javascript - 如何防止暂停计时器脚本时弹出确认对话框

    javascript - 如何检查 Angular 中的日期是否低于 4 年?

    go - Terratest 在错误断言上抛出错误

    javascript - 如何使用 C3 创建 Dojo Widget

    javascript - 获取 Json 对象上的项目总数?

    javascript - 如何从合并结果集中提取数组?

    node.js - npm ERR! Windows 10中从未调用过cb()