html页面低级别目录照片的路径,javascript - 如何使用AngularJS在HTML中更改img src而不编辑HTML文件? - 堆栈内存溢出...

这篇博客探讨了在Angular中创建自定义`img`指令以确保图片源为安全URL的问题。通过检查`src`属性并修正不安全的链接,实现了对图片源的保护。同时,为了解决递归问题并处理动态加载的HTML内容,作者提供了`dynamic`指令,用于编译动态内容。文章还提到了如何避免使用`img`作为指令名,并鼓励读者分享改进方案。
摘要由CSDN通过智能技术生成

尽管讨论了创建img指令是否明智,解决问题的实际指令如下所示:

app.directive('img', function() {

return {

restrict: 'E',

replace: false,

link: function(scope, elem, attr) {

if (attr.src.slice(0, 7) !== "http://" && attr.src.slice(0, 8) !== "https://") {

attr.$set("src", "http://demo.com/+ attr.src);

}

}

};

});

此评论中讨论的递归问题来自于尝试使用模板替换整个标记而不是仅仅更改src值

此外,为了将指令应用于动态加载的html代码段,需要将它包装在编译其内容的指令中:

app.directive('dynamic', function($compile) {

return {

restrict: 'A',

replace: false,

transclude: true,

link: function(scope, ele, attrs) {

return scope.$watch(attrs.dynamic, function(html) {

ele.html(html);

$compile(ele.contents())(scope);

});

}

};

});

像这样应用:

其中content是范围中的变量,其中包含使用标签剪切的动态html。

如果你想避免一个名为img的指令,一种方法是“修复”这个片段:

content.replace(/

然后像这样启动指令:

app.directive('customimg', function() {

return {

restrict: 'A',

...

在这里使用替换似乎相当粗糙,但我想不出另一种方式。 欢迎提出改善答案的建议!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值