Я пытаюсь присвоить значение переменной в функции обратного вызова. Насколько я знаю, функции обратного вызова являются асинхронными, поэтому я пытался использовать scope.apply, но он, похоже, не работает. Любые идеи?функция обратного вызова в AngularJS
angular.module("sadf")
.factory("browsersCameraSupportService", function ($scope, $apply) {
return {
supportsGetUserMedia: function() {
navigator.getUserMedia = navigator.getUserMedia || navigator.webkitGetUserMedia || navigator.mozGetUserMedia || navigator.msGetUserMedia;
var hasCam = true;
if (navigator.getUserMedia) {
navigator.getUserMedia({video: true}, function(localMediaStream){
}, function(){
$scope.$apply(function(){
hasCam = false;
});
});
}
return angular.isDefined(navigator.getUserMedia)&& hasCam;
}
};
});
$ scope.apply не меняет того факта, что 'возвращение angular.isDefined (navigator.getUserMedia) && hasCam; 'произошло long bfore hasCam было установлено в false. –
Что вы пытаетесь достичь с большей точки зрения? Вы действительно не объяснили, что происходит. Угловое использует много обещаний, которые обрабатывают асинхронные обратные вызовы. – ryanyuyu
@Kevin B да, я понял, что, когда он не работал. –