Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/430.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用;这";在Vuejs 2.0中_Javascript_Vue.js_Vuejs2_Vue Component - Fatal编程技术网

Javascript 使用;这";在Vuejs 2.0中

Javascript 使用;这";在Vuejs 2.0中,javascript,vue.js,vuejs2,vue-component,Javascript,Vue.js,Vuejs2,Vue Component,我是VueJS的新手。 我有一个小问题,我想不出来。希望有人能给我一个提示 我正在创建一个语音搜索按钮,基本上当我单击语音按钮时,它会记录我的语音并将其打印到表单中的输入属性 <input type="text" name="inputSearch" id="inputSearch" v-model="inputSearch" class="form-control" x-webkit-speech> 这是我在VueJS中的脚本 <script> export de

我是VueJS的新手。 我有一个小问题,我想不出来。希望有人能给我一个提示

我正在创建一个语音搜索按钮,基本上当我单击语音按钮时,它会记录我的语音并将其打印到表单中的输入属性

<input type="text" name="inputSearch" id="inputSearch"
v-model="inputSearch" class="form-control" x-webkit-speech>

这是我在VueJS中的脚本

<script>
export default {
        data() {
          return {
                    inputSearch: '',
                    show: false
                 }
        },
        methods: {
          voiceSearch: function(event){
                    this.inputSearch = '';
                    this.show = false;
                    if (window.hasOwnProperty('webkitSpeechRecognition')) {
                    var recognition             = new webkitSpeechRecognition();
                    recognition.continuous      = false;
                    recognition.interimResults  = false;
                    recognition.lang            = "en-US";
                    recognition.start();
                    recognition.onresult = function(e) {
                    this.inputSearch = e.results[0][0].transcript;
                     recognition.stop();
                        };
                    recognition.onerror = function(e) {
                          alert('There are something wrong...');
                          recognition.stop();
                    };



                    }else {
                      alert('Your browser does not support HTML5/WebKitSpeech. You are not able to use this functionality');
                    }

          }

        }
    }
</script>

导出默认值{
数据(){
返回{
输入搜索:“”,
节目:假
}
},
方法:{
语音搜索:功能(事件){
this.inputSearch='';
this.show=false;
if(window.hasOwnProperty('webkitSpeechRecognition')){
var recognition=new-webkitSpeechRecognition();
识别持续=错误;
recognition.interimResults=false;
recognition.lang=“en-US”;
识别。开始();
recognition.onresult=函数(e){
this.inputSearch=e.results[0][0]。成绩单;
识别。停止();
};
recognition.onerror=函数(e){
警惕(‘有点不对劲……’);
识别。停止();
};
}否则{
警报(“您的浏览器不支持HTML5/WebKitSpeech。您无法使用此功能”);
}
}
}
}
我能够从语音识别中获取文本,但无法在输入表单中显示


谢谢,

不要使用
函数
而是使用ES6的箭头语法,这样可以保持此函数的范围不变,如下所示:

                recognition.onresult = (e) => {
                   this.inputSearch = e.results[0][0].transcript;
                   recognition.stop();
                };
                recognition.onerror = function(e) {
                      alert('There are something wrong...');
                      recognition.stop();
                };
或者,其他选项是将该保存在其他变量中,并使用该变量,如下所示:

                var that = this
                recognition.onresult = function(e) {
                  that.inputSearch = e.results[0][0].transcript;
                  recognition.stop();
                };
                recognition.onerror = function(e) {
                      alert('There are something wrong...');
                      recognition.stop();
                };
你可以看看我类似的答案