Vue.js 使用来自条形码扫描器的输入
Vue.js working with input from a barcode scanner
我在 Web 模块中偶然发现了一个有趣的案例,它专为用户输入和机器输入(通过条形码扫描仪)而设计。这是来自 Vue 模块的代码:
<input
class="form-control"
v-model="barcode"
id="barcode-scanner"
@keyup.enter="parseBarcode"
/>
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 毫秒延迟(扫描器中的自定义设置)然后发送 keyup.enter
,一切都按预期工作。
最大的问题是:我怎样才能“减慢”扫描仪的输入而不是调整扫描仪设置(显然对其他情况不方便)?
此致
尝试在 this.$nextTick 中调用它:
parseBarcode () {
this.$nextTick(() => {
myAPI.getBarcodeId(this.barcode).then(({data}) => {
if (data.errors) {
this.showError()
} else {
// do some work and focus on input
this.focusBarcodeInput();
}
})
});
}
我会nextTick试一试
你可以这样使用它:
parseBarcode(){
// validates barcode (string)
myAPI.getBarcodeId(this.barcode).then(({data}) => {
if (data.errors) {
this.showError()
} else {
this.$nextTick(() => {
this.focusBarcodeInput();
});
}
})
},
我在 Web 模块中偶然发现了一个有趣的案例,它专为用户输入和机器输入(通过条形码扫描仪)而设计。这是来自 Vue 模块的代码:
<input
class="form-control"
v-model="barcode"
id="barcode-scanner"
@keyup.enter="parseBarcode"
/>
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 毫秒延迟(扫描器中的自定义设置)然后发送 keyup.enter
,一切都按预期工作。
最大的问题是:我怎样才能“减慢”扫描仪的输入而不是调整扫描仪设置(显然对其他情况不方便)?
此致
尝试在 this.$nextTick 中调用它:
parseBarcode () {
this.$nextTick(() => {
myAPI.getBarcodeId(this.barcode).then(({data}) => {
if (data.errors) {
this.showError()
} else {
// do some work and focus on input
this.focusBarcodeInput();
}
})
});
}
我会nextTick试一试
你可以这样使用它:
parseBarcode(){
// validates barcode (string)
myAPI.getBarcodeId(this.barcode).then(({data}) => {
if (data.errors) {
this.showError()
} else {
this.$nextTick(() => {
this.focusBarcodeInput();
});
}
})
},