2013-10-12 52 views
1

我正在尝试整合Annyang.jsAngular.js将Annyang.js语音识别与Angular.js集成

我想使Annyang.js与DOM的绑定(Angular style)的结果。一些想法可能是使用角度服务,如$ watch,$ apply,$ digest或创建指令/工厂/提供者?我很茫然。帮助将不胜感激。

到目前为止,它懂VoiceCtrl范围内的命令,但它不会绑定到$ scope.said

的Javascript:

var SpeechApp = angular.module('SpeechApp', []); 

function VoiceCtrl($scope) { 

    $scope.said=''; 

    $scope.helloWorld = function() { 
    $scope.said = "Hello world!"; 
    } 

    $scope.commands = { 
    'hello (world)': $scope.helloWorld, 
    }; 

    annyang.debug(); 
    annyang.init($scope.commands); 
    annyang.start(); 
} 

HTML:

<body ng-app="Voice" ng-controller="VoiceCtrl"> 
    <p>{{said}}</p> 
</body> 

回答

1

它看起来像你重新错过了scope.$apply()。这是允许角度更新所有绑定的必要条件,因为annyang.js将在角度上下文之外工作。

尝试用

'Hello (world)': function() { 
    $scope.$apply($scope.helloWorld); 
}); 
0

而且免去您的命令,调用模块 “SpeechApp” 你JS和NG-应用= “声音” 在你的HTML。

推荐这个HTML代替:

<body ng-app="SpeechApp"> 
    <div ng-controller="VoiceCtrl"> 
     <p>Hi: {{said}}</p> 
    </div> 
    </body> 

http://plnkr.co/edit/QIWwhS?p=preview