Благодаря встроенной функции распознавания голоса Chrome я изменяю значение текстовой области с помощью произнесенных слов. После изменения значения мои данные vue не обновляются.
Я уже пробовал v-model.lazy, @change и v: bind.
Шаблон Vue
<div class="form-group">
<textarea v-model.lazy="textboxInput" contenteditable="true" @change="onDivInput($event) " class="form-control" id="result" rows="1" name="inputData"></textarea>
</div>
Код Vue
export default {
data() {
return {
result: [],
textboxInput: '',
session_id: this.sessionid,
user: this.userid,
edit: false,
roundRobin: JSON.parse(this.roundrobin),
}
},
props: {
sessionid: '',
userid: '',
roundrobin: '',
},
mounted() {
this.getResult();
this.listen();
this.mod();
},
methods: {
onDivInput: function (e) {
this.textboxInput = e.target.innerHTML;
console.log(e);
},
Javascript, где значение textarea изменяется
R - текстовая область
try {
let finalTranscripts = '';
if ('webkitSpeechRecognition' in window && hasUserMedia) {
let speechRecognizer = new webkitSpeechRecognition();
speechRecognizer.continuous = false;
speechRecognizer.interimResults = true;
speechRecognizer.lang = 'nl-be';
speechRecognizer.start();
speechRecognizer.onresult = function (event) {
let interimTranscripts = '';
for (let i = event.resultIndex; i < event.results.length; i++) {
let transcript = event.results[i][0].transcript;
transcript.replace("\n", "<br>");
if (event.results[i].isFinal) {
finalTranscripts += transcript;
} else {
interimTranscripts += transcript;
}
}
r.innerHTML = finalTranscripts + interimTranscripts;
}
;
speechRecognizer.onerror = function (event) {
speechRecognizer.stop();
};
} else {
r.innerHTML = 'Your browser is not supported. If google chrome, please upgrade!';
}
} catch (ex) {
e.innerHTML = ex;
}
Если innerhtml текстовой области изменится, я хочу, чтобы мои данные также обновлялись.