vue.js:观察输入并未在每次按键时触发

2024-05-06

我有一个input正在监视其模型属性。问题是每次按键时不会调用 watch 方法铬 安卓设备。如果我点击输入文本,就会调用它。 过去确实有效,但我不知道发生了什么。 在Chrome 桌面版可以正常使用(那就是watch for text每次按键时都会被调用)。

Input:

  <input id="input-message" ref="input-message" :disabled="disabled"
  @focus="$emit('focus')" @keyup.enter="sendMessage" 
  v-model="text" type="text" placeholder="Start typing..." 
  class="form-control">

Watch:

  watch: {
    disabled: function(val) {
      if (!val) {
        this.$nextTick(() => {
          this.$refs["input-message"].focus();
        });
      }
    },
    text: function(val) {
      var mode = this.micMode;
      if (this.userAgent !== "ios") {
        let isEmpty = val.length === 0;

        if (mode === 1 && !isEmpty) {
          this.micMode = 0;
        } else if (mode === 0 && isEmpty) {
          this.micMode = 1;
        }
      }

    }
  },

对于需要IME https://en.wikipedia.org/wiki/Input_method(中文、日文、韩文等)、 您会注意到 v-model 在 IME 合成期间不会更新。 如果您也想满足这些更新,请使用输入事件 反而。

https://v2.vuejs.org/v2/guide/forms.html#vmodel-ime-tip https://v2.vuejs.org/v2/guide/forms.html#vmodel-ime-tip

你可以改变v-model="model" to :value="text" @input="text = $event.target.value"并且观察者应该按预期被触发

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

vue.js:观察输入并未在每次按键时触发 的相关文章

随机推荐