JSON에서 비디오 이름을 읽고 <video>
태그의 소스에서 인쇄하려고합니다. 그러나 페이지를로드 할 때 비디오가 비어 있고 콘솔에 http://www.url.com/gallery/video/undefined이 표시되지만 "검사"를 수행하면 올바른 URL이 인쇄됩니다 ... 왜?
이는 HTML 코드입니다 :AngularJS가 비디오 URL을 정의하지 않았습니다.
<html xmlns="http://www.w3.org/1999/xhtml" ng-app="mediaReproductionApp">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Principale</title>
<script src="js/angular.js"></script>
<script src="js/angular_read_media.js"></script>
</head>
<body ng-controller="MediaReproductionCtrl">
<div class="media_player">
<video preload="metadata" ng-hide="reproductionCodeIsEmpty(item.items[0].media) == true" controls>
<source src="{{playVideo(item.items[0].media)}}" type="video/webm" />
</video>
</div>
</body>
</html>
그리고 이것은 스크립트입니다 데이터가 아무리 media
가 처음 undefined
될 것입니다 도착하기 전에 $scope.playVideo()
이 전화를받을 것입니다
var model = {};
var mediaReproductionApp = angular.module("mediaReproductionApp",[]);
mediaReproductionApp.run(function ($http) {
$http.get("movimenti_per_totem.json").success(function (data) {
model.items = data;
});
});
mediaReproductionApp.controller("MediaReproductionCtrl", function($scope) {
$scope.item = model;
$scope.playVideo = function(media) {
return "../gallery/video/" + media;
}
$scope.reproductionCodeIsEmpty = function(media) {
return media == "";
}
});
컴파일되지 않은 URL의 잘못된 요청을 방지하려면 'ng-src'를 사용해야합니다. 브라우저가 'src'로 실행될 때 각도 컴파일을 기다리는 것을 알지 못함 – charlietfl
...'$ http'가 완료 될 때까지'media'가 함수에서 정의되지 않았습니다. – charlietfl
@charlietfl 그래서, 어떻게해야합니까? – ProtoTyPus