try ng-src in your template
app.directive('youtube', function($sce) {
return {
restrict: 'EA',
scope: { code:'=' },
replace: true,
template: '',
link: function (scope) {
scope.$watch('code', function (newVal, oldVal) { // use newVal and oldVal
console.log(newVal); // log it to see that it is passed
if (newVal !== undefined) {
scope.url = $sce.trustAsResourceUrl("http://www.youtube.com/embed/" + newVal);
}
});
}
};
});
also, in your HTML, you don't need {{ }} around video, its already a variable on the scope
<div ng-repeat="video in event.videos" class="embed">
<div youtube code="video"></div>
</div>