我正在学习角度,并且有这个奇怪的问题:我的索引包括:
<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}}尚未评估。问题是为什么?
,
答案 0 :(得分:2)
请尝试ng-src:
在src属性中使用{{hash}}之类的Angular标记不起作用 右:浏览器将使用文字文本从URL中获取 {{hash}}直到Angular替换{{hash}}中的表达式。该 ngSrc指令解决了这个问题。