AngularJS - 将Youtube视频网址从指令嵌入到脚本时出现问题

时间:2014-07-25 07:28:41

标签: javascript jquery angularjs youtube angularjs-directive

以下是控制器中的工作代码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>

我在代码中遗漏了什么,感谢任何帮助。

1 个答案:

答案 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数组,它与它无关网址。