Ember.js `keyUp`不工作,在输入字段上触发keyUp的正确方法是什么

Ember.js `keyUp`不工作,在输入字段上触发keyUp的正确方法是什么,ember.js,Ember.js,我试图在输入元素中集成一个keyup事件。但根本不起作用。有人能帮我展示触发事件的正确方法吗 这是我的哈佛商学院档案: <span class="opt-num"> <input type="number" tabindex="1" min="0" max="9" maxlength="1" value="" onKeyUp={{action "numberValidate"}} style="border:1px solid red" >

我试图在输入元素中集成一个keyup事件。但根本不起作用。有人能帮我展示触发事件的正确方法吗

这是我的哈佛商学院档案:

<span class="opt-num">
            <input type="number" tabindex="1" min="0" max="9" maxlength="1" value="" onKeyUp={{action "numberValidate"}} style="border:1px solid red" >

        </span>

但获取错误为:
失败:未找到名为“numberValidate”的操作

模板hbs上下文是控制器,因此需要在控制器的操作哈希中定义
numberValidate
函数

如果要调用路由器操作,则有两个选项,
1.从控制器中取出它 定义控制器中的函数,然后您需要从中调用route中的函数。 在route.js文件中

actions:{
 numberValidateInRoute(){ console.log("hi") }
}
在controller.js文件中,需要使用send方法对其进行冒泡

actions:{
 numberValidate(){ 
   this.send('numberValidateInRoute');
 }
}
  • 使用

  • 签出更多与此主题相关的文章。

    但我正在尝试调用
    路由器
    功能。怎么办?同样的方法单击函数(如果我删除了keyup)工作正常我更新了我的答案,你需要将它从控制器冒泡到手动路由。但是调用my way
    onKeyUp={{action“numberValidate”}}
    是正确的?只要你在控制器中有一个处理函数,它就是正确的。因为没有找到,所以没有任何东西能像@kumkanillam所指出的那样处理这个动作。看看这个更新的twiddle,它使用了foucs的东西,以及如何传递值。。
    actions:{
     numberValidate(){ 
       this.send('numberValidateInRoute');
     }
    }