如何使用 annyang 语音命令更改我在 $scope 中声明的 AngularJS 变量?
How do I change an AngularJS variable I declared in $scope using annyang speech commands?
我有一个简单的语音识别应用程序,可以根据语音命令启动和暂停视频。我的问题是,当我发出暂停命令时,我在 $scope 中声明的变量不会改变。目的是在我使用 "pause" 语音命令暂停视频时更改文本区域中的数字。
var myApp = angular.module('myApp', ['vjs.video']);
myApp.controller("myCtrl", function MyCtrl($scope) {
$scope.playtime = 0;
$scope.$on('vjsVideoReady', function(e, data) {
$scope.vid = data.player;
$scope.commands = {
'play': function() {
$scope.vid.play();
},
'pause': function() {
$scope.vid.pause();
$scope.playtime = 10;
}
};
$scope.ay = annyang;
$scope.ay.addCommands($scope.commands);
$scope.ay.debug();
$scope.ay.start();
});
});
非常感谢您的帮助。
只需将 $scope.$digest
放入您的暂停回调中即可:
'pause': function() {
$scope.vid.pause();
$scope.playtime = 10;
$scope.$digest();
}
所以当您尝试在 angular 的工作区域之外更改 $scope
变量时,angular 会知道某些内容已更改。
希望对您有所帮助
我有一个简单的语音识别应用程序,可以根据语音命令启动和暂停视频。我的问题是,当我发出暂停命令时,我在 $scope 中声明的变量不会改变。目的是在我使用 "pause" 语音命令暂停视频时更改文本区域中的数字。
var myApp = angular.module('myApp', ['vjs.video']);
myApp.controller("myCtrl", function MyCtrl($scope) {
$scope.playtime = 0;
$scope.$on('vjsVideoReady', function(e, data) {
$scope.vid = data.player;
$scope.commands = {
'play': function() {
$scope.vid.play();
},
'pause': function() {
$scope.vid.pause();
$scope.playtime = 10;
}
};
$scope.ay = annyang;
$scope.ay.addCommands($scope.commands);
$scope.ay.debug();
$scope.ay.start();
});
});
非常感谢您的帮助。
只需将 $scope.$digest
放入您的暂停回调中即可:
'pause': function() {
$scope.vid.pause();
$scope.playtime = 10;
$scope.$digest();
}
所以当您尝试在 angular 的工作区域之外更改 $scope
变量时,angular 会知道某些内容已更改。
希望对您有所帮助