首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用条形码扫描器输入的Vue.js

使用条形码扫描器输入的Vue.js
EN

Stack Overflow用户
提问于 2020-07-17 12:21:05
回答 2查看 2.3K关注 0票数 2

我在一个网络模块中偶然发现了一个有趣的案例,它是为用户和机器输入(通过条形码扫描仪)设计的。下面是Vue模块的代码:

代码语言:javascript
复制
<input 
    class="form-control"
    v-model="barcode"
    id="barcode-scanner"
    @keyup.enter="parseBarcode"
/>
代码语言:javascript
复制
parseBarcode(){
    // validates barcode (string)
    myAPI.getBarcodeId(this.barcode).then(({data}) => {
        if (data.errors) {
            this.showError()
        } else {
            // do some work and focus on input
            this.focusBarcodeInput();
        }
    })
},

扫描仪可以在最后触发keyup.enter,但是它输入条形码的速度太快,所以模型不会更新。只有在输入后添加10 ms延迟(扫描程序中的自定义设置),然后发送keyup.enter,一切正常工作。

最大的问题是:我如何“放慢”扫描仪的输入,而不是调整扫描仪的设置(显然对其他情况不方便)?

诚挚的问候

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-07-17 12:30:04

尝试在这个,nextTick美元中调用它:

代码语言:javascript
复制
parseBarcode () {
  this.$nextTick(() => {
    myAPI.getBarcodeId(this.barcode).then(({data}) => {
      if (data.errors) {
        this.showError()
      } else {
        // do some work and focus on input
        this.focusBarcodeInput();
      }
    })
  });
}
票数 3
EN

Stack Overflow用户

发布于 2020-07-17 12:31:50

我会给nextTick一次机会

你可以这样用它:

代码语言:javascript
复制
parseBarcode(){
    // validates barcode (string)
    myAPI.getBarcodeId(this.barcode).then(({data}) => {
        if (data.errors) {
            this.showError()
        } else {
            this.$nextTick(() => {
               this.focusBarcodeInput();
         });
        }
    })
},
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62953867

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档