Vue.js Android 上的 keyup 事件和 v-model 长度未按预期工作

Vue.js keyup events and v-model length on Android not working as expected

在 Android 上,v-model 的长度在 keyup 上返回 0,除非它是数字或 space bar 键。有谁知道这是为什么以及如何让它触发 keyup 事件,无论它是什么键并获得长度?这是我所拥有的清理版本:

<template>
  <div class="typeahead">
    <input
      v-model="query"
      v-on:keyup="suggestTerms"
      >
  </div>
</template>

<script>
export default {
  data () {
    return {
      query: '',
    }
  },
  methods: {
    suggestTerms () {
      console.log('query length = ' + this.query.length);
    }
  }
}
</script>

P.S。这适用于除 Android.

之外的所有浏览器和设备

某些情况下,存在 v-model 未在移动设备上更新的情况。 Issue on Forum (current), Another from Forum

您也可以显式编写 v-model,它在 android 和 pc 上都有效。

function callMe(){
    var vm = new Vue({
        el : '#root',
        data : {query : ''},
        methods: {
          suggestTerms () {
            console.log('query length = ' + this.query.length);
          }
        }
    })
}
callMe();
<script src="https://cdn.jsdelivr.net/npm/vue@2.5.11/dist/vue.js"></script>
<div id='root'>
  <h3>Decomposed</h3>
  <div>
    <input type='text' :value='query' @input='evt=>query=evt.target.value' v-on:keyup="suggestTerms">
    
    <b>{{query}}({{query.length}})</b>
    
  </div>
</div>