Мне нужно динамически изменять некоторые переменные сферы после того, как песня в звуковом теге закончена. Моя проблема заключается в том, что в переменной scope.test не влияет звуковая директива.Изменение области действия в обработчике событий в Угловой директиве
angular.module('playItApp', [])
.controller('audioController', ['$scope', function($scope){
$scope.test = 'songNotFinished';
})
.directive('audio', function(){
return {
restrict: 'E',
link: function(scope, element, attrs){
element[0].onended = function() {
scope.test = 'songFinished';
this.load();
};
}
}
});
<div ng-controller="audioController">
<h1>{{ test }}</h1>
<audio controls autoplay>
<source ng-src="{{ some_path }}" type="audio/mpeg">
</audio>
</div>
На самом деле проблема была более сложной, я нуждался в рамках $ применяются(). в конце функции ссылки в директиве. – klis87
@ user3575996 Добавлен 'scope. $ Apply (function() {});' почти забыл, что вам нужно связаться с контроллером! –