ember.js - ember 等待用户填写表单
问题描述
在 ember 中,我有一个表单询问用户他们的远程服务器的用户名和密码,然后我想通过进行 ajax 调用来验证凭据。目前,我正在使用一个定制的组件,它允许我在单击下一步或提交时绑定任何操作,我可以在其中验证凭据并在需要时抛出错误。但是一旦发生错误,用户就不能点击下一步按钮(组件的实现方式),因此不会发生第二次验证。所以,我想创建一个计算属性来查找用户名和密码(因此在输入时进行 ajax 调用)。但是这种方法的问题是:每次在这些框中输入内容时,都会触发计算属性,从而进行 ajax 调用(我不想无缘无故地进行这么多网络调用)。
解决方案
更好的方法是将 oninput 与操作一起使用:
<input oninput={{action "onInput" value="target.value"}}>
然后使用 ember-lifeline 插件(本示例)中的 debounceTask 或使用 ember-concurrency从操作onInput debounce调用到 ajax 函数:
actions: {
onInput(val){
debounceTask(this, 'sendAjax', val, 500);
}
}
推荐阅读
- swift - Swift moveBy 方法不会接受 CGFloat 参数
- r - 根据其他因素的水平将一列的值分配给另一列:R
- python-3.x - 如何调整 Google 电子表格的大小?
- python - 在 McMaster-Carr 网站上抓取数据时出现问题
- python - 如何从 Flask Server 中的 JSON 文件中获取数据
- oracle-apex - Oracle Apex 交互式网格在删除集列空/任何值时
- supertest - 如何在 Apache 超集中添加大于过滤器?
- c++ - cv::namedWindow() 崩溃,分段错误
- android - 如何使用导航组件更新/刷新目的地?
- vue.js - 如何在js中的函数中设置值el-input