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

时间:2017-08-21 09:09:32

标签: ember.js

我正在尝试在我的input元素中集成一个keyup事件。但根本不起作用。任何人帮我展示触发事件的正确方法?

这是我的hbs文件:

<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>

我的route.js文件:

actions:{

        numberValidate(){ console.log("hi") }
}

但错误为:Failed: An action named 'numberValidate' was not found

1 个答案:

答案 0 :(得分:1)

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

如果你想调用路由器动作,那么你有两个选择,
1.从控制器冒泡 定义函数控制器,从那里你需要在路由中调用函数。 在route.js文件中,

actions:{
 numberValidateInRoute(){ console.log("hi") }
}

在controller.js文件中,您需要使用send方法对其进行冒泡。

actions:{
 numberValidate(){ 
   this.send('numberValidateInRoute');
 }
}
  1. 使用ember-route-action helper addon
  2. 结帐my detailed answer更多与此主题相关的文章。