Angularjs src =" {{url}}不能在一个文件中工作,但在另一个文件中工作。

时间:2014-05-30 13:41:37

标签: angularjs

我正在学习角度,并且有这个奇怪的问题:我的索引包括:

<script src="js/controllers.js"></script>
<script src="js/directives.js"></script>

我有这段代码:

angular.module('myApp.directives', []).directive('myYoutube', function($sce) {
return {
    restrict: 'EA',
    scope: { code:'=',add:'=' },
    replace: true,
    template: '<div style="height:400px;"><iframe style="overflow:hidden;height:100%;width:100%" width="100%" height="100%" src ="{{url}}" frameborder="0" allowfullscreen></iframe></div>',
    link: function (scope) {
        console.log('here');
        scope.$watch('code', function (newVal) {
            if ($sce.isEnabled()){
                console.log('and');}
            if (newVal) {
                console.log('there');
                scope.url= $sce.trustAsResourceUrl("http://www.youtube.com/embed/" + newVal);
            }
        });
    }
};

});

当我把它放在controllers.js时它运行正常。但当我把它放在directives.js时,我收到了这个错误:

  

获取http://localhost:8000/app/%7B%7Burl%7D%7D 404(未找到)

指出{{url}}尚未评估。问题是为什么?

1 个答案:

答案 0 :(得分:2)

请尝试ng-src

  

在src属性中使用{{hash}}之类的Angular标记不起作用   右:浏览器将使用文字文本从URL中获取   {{hash}}直到Angular替换{{hash}}中的表达式。该   ngSrc指令解决了这个问题。