这是工作代码PLUNKER在 Controller 中
public JsonResult videohome()
{
BaseController bc = new BaseController();
var video = (from n in bc.db.Video where n.Video == true select n).FirstOrDefault();
var videos = new Videohome { youtubeid = "//www.youtube.com/embed/" + video.youtubeid };
return Json(videos, JsonRequestBehavior.AllowGet);
}
public class Videohome
{
public string youtubeid { get; set; }
}
输出为 {"youtubeid":"//www.youtube.com/embed/_kux-YQujjM"}
但是当我将此输出加载到脚本中时,它会显示错误,
<script>
countryApp.controller('Homevideo', ['$scope', "$http",'$sce', function (scope, sce, http) {
http.get('@Url.Content("/sample/videohome")').success(function (data) {
$scope.video = data;
$scope.videoUrl = $sce.trustAsResourceUrl($scope.video + $scope.video.youtubeid);
});
}]);
</script>
<div ng-controller="Homevideo" > <br />
<iframe width="100%" height="250" ng-src="{{videoUrl}}" frameborder="0" allowfullscreen=""></iframe>
<p>{{videoUrl}}</p>
</div>
我是否错过了代码中的任何内容,非常感谢任何帮助。
最佳答案
这是一个工作版本(没有http):http://plnkr.co/edit/6M0qdSNlUe1f7mhT7ASt?p=preview 我发现了一些错误,首先,尝试以相同的顺序并使用“$”前缀来组织导入:
countryApp.controller('Homevideo', ['$scope', "$http",'$sce', function ($scope, $http, $sce)
我注意到的第二件事是 $scope.video + $scope.video.youtubeid
我认为你做得不对,$sce.trustAsResourceUrl($scope.video. youtubeid);
应该足够了,因为 $scope.video 是一个 json 数组,它与 url 无关。
关于javascript - AngularJS - 将 Youtube 视频 url 从指令嵌入到脚本时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24950280/