2016-04-16 5 views
0

現在、私は検索機能にコードベースの音声認識を使用しています。検索テキストエリアが音声入力を使用して更新されていません

HTMLコード:

<div class="bar bar-header item-input-inset"> 
    <label class="item-input-wrapper"> 
    <i class="icon ion-ios-search placeholder-icon"></i> 
    <input type="search" ng-model="search" id="in" placeholder="Search"> 
    </label> 
    <button class="button button-small" ng-click = "recognizeSpeechSearch()"> 
    <i class="icon ion-mic-a"></i> 
    </button> 
    </div> 

コードはJavaScript:私は声を介して入力を挿入すると

$scope.recognizeSpeechSearch = function(){ 
      var maxMatches = 1; 
      var promptString = "Speak now"; // optional 
      var language = "ms-MY";      // optional 

      window.plugins.speechrecognizer.startRecognize(function(result){ 
       alert(result); 
        $scope.search = result; 

      }, function(errorMessage){ 
       console.log("Error message: " + errorMessage); 
      }, maxMatches, promptString, language); 
     } 

、それは私の検索テキスト領域に更新され、検索フィルタを実行しません。誰かがこの問題について私を助けることができますか?ありがとう。

答えて

0

コールバックは、角度の範囲外で実行されます。 $ apply()を使用する必要があります。

window.plugins.speechrecognizer.startRecognize(function(result){ 
$scope.$apply(fuction() { 
    alert(result); $scope.search = result;}) 
;}, function(errorMessage){ 
console.log("Error message: " + errorMessage); }, maxMatches, promptString, language); 
+0

こんにちは、私は$ apply()を試しました。テキスト領域は入力で更新できますが、検索機能は実行できません – Alex

+0

検索機能を実行できないということはどういう意味ですか?実行されていないのですか? –

+0

私は、検索を実行するために角度フィルタ機能を使用しています。手動で入力すると、キーワードと一致する項目をフィルタできます。音声入力を使用すると、テキスト領域は更新できますが、フィルタ機能は表示されません。私に。 – Alex

関連する問題