我有一个input模型属性正在观看.问题是Chrome Android设备中的每次按键都不会调用watch方法.如果我点击输入文本,则会调用它.它确实在过去有效,我不知道发生了什么.在Chrome桌面上它可以工作(即:每次按键都会调用watchfor text).
输入:
<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">
Run Code Online (Sandbox Code Playgroud)
看:
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;
}
}
}
},
Run Code Online (Sandbox Code Playgroud)
对于需要IME(中文,日文,韩文等)的语言,您会注意到在IME合成期间v-model不会更新.如果您也想要满足这些更新,请改用输入事件.
您可以更改v-model="model"为:value="text" @input="text = $event.target.value",应按预期触发观察者