我想编写类似于以下内容的HTML:
<a href="sharedasset: img.png">test</a> <img src="sharedasset: img.png"/>
并且有一个名为“ sharedasset”的指令,该指令获取到完整的路径img.png并设置属性的值,而该指令事先不知道属性名称是什么。这可能吗?
img.png
更新资料
自从我最初发布此内容以来,对Angular进行了一些改进,因此我想分享一下我现在所做的事情。在HTML中,我使用Guido Bouman的答案(即创建一个过滤器),现在有了Angular的 一次绑定 功能,这使其成为我认为的最佳选择。
不过,在JS代码中,现在$filter并没有globalVars在所有地方注入和常量,而是将单词添加static到静态内容服务器上托管的资产的任何路径之前{templateUrl: "static/someTemplate.html"},然后使用Angular HTTP Interceptor查找以以下内容开头的任何路径“静态”并将其替换为静态服务器的域。很简单。
$filter
globalVars
static
{templateUrl: "static/someTemplate.html"}
<a full-path="img.png">test</a> <img full-path="img.png"> app.directive('fullPath', function() { return { link: function(scope, element, attrs) { var fullPathUrl = "http://.../"; if(element[0].tagName === "A") { attrs.$set('href',fullPathUrl + attrs.fullPath); } else { attrs.$set('src',fullPathUrl + attrs.fullPath); } }, } });
我不知道您从哪里来fullPathUrl,所以我在链接函数中对其进行了硬编码。
fullPathUrl