2016-12-10 5 views
0

ich einen Fehler von Error while interpolating: videos/{{video.name}} mit folgendem Code bekam:AngularJS kann nicht variabel zu html5 Video src zuordnen

<div ng-repeat='video in videos'> 
     <div class="col-md-3"> 
     <video controls> 
      <source src="videos/{{video.name}}" type="video/mp4"> 
      Your browser does not support HTML5 video. 
     </video> 
     {{video.name}} // this worked 
     </div> 
    </div> 

Versuchte ng-src auch, aber nicht funktioniert. Seltsam.

Antwort

0

Verwenden Sie diesen Filter,

app.filter("trustUrl", ['$sce', function ($sce) { 
     return function (recordingUrl) { 
      return $sce.trustAsResourceUrl(recordingUrl); 
     }; 
    }]); 

HTML

<video controls> 
     <source src="videos/{{video.name | trustUrl}}" type="video/mp4"> 
     Your browser does not support HTML5 video. 
    </video> 
+0

video.name ist der Name wie 'tarzen 2016 - etwas etwas' –

+0

ok dann die URL bilden mit Hilfe von Javascript und die trustUrl für ganze url – Sajeetharan

+0

upvote gelten wenn es geholfen hat – Sajeetharan

0

Try this:

Html:

<div ng-app="myApp" ng-controller="MyCtrl"> 
    <div ng-repeat='video in videos'> 
     <div class="col-md-3"> 
     <video controls> 
      <source src="videos/{{video.name}}" type="video/mp4"> 
      Your browser does not support HTML5 video. 
     </video> 
     {{video.name}} // this worked 
     </div> 
    </div> 
</div> 

JS:

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

myApp.controller('MyCtrl',function($scope) { 
    $scope.videos = [ 
     {"name":"alpha"}, 
     {"name":"beta"}, 
     {"name":"gama"} 
    ] 
}); 

Working demo!

+0

Ihre 'Arbeitsdemo' ist so groß, aber kann das Video abgespielt werden? –

+0

Große Mittel? .. Ich kenne nicht die genaue Streaming-URL, aber es wird funktionieren. Es ist nur eine Antwort auf Ihre Frage und eine Demo, wie Sie die Controller-Daten analysieren können. –

+0

Eigentlich ist diese Frage nicht einfach, es ist ein Bug in angularjs https://github.com/angular/angular.js/issues/1352 –