以下是控制器中的工作代码PLUNKER
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>
我在代码中遗漏了什么,感谢任何帮助。
答案 0 :(得分:1)
这是一个工作版本(没有http):http://plnkr.co/edit/6M0qdSNlUe1f7mhT7ASt?p=preview 我发现了一些错误,首先,尝试按照相同的顺序组织导入并使用&#39; $&#39;前缀:
countryApp.controller('Homevideo', ['$scope', "$http",'$sce', function ($scope, $http, $sce)
我注意到的第二件事是$scope.video + $scope.video.youtubeid
我认为你做得不对,$sce.trustAsResourceUrl($scope.video.youtubeid);
应该足够$ scope.video是一个json数组,它与它无关网址。