一尘不染

如何从AngularJS指令设置本机属性?

angularjs

我想编写类似于以下内容的HTML:

<a href="sharedasset: img.png">test</a>
<img src="sharedasset: img.png"/>

并且有一个名为“ sharedasset”的指令,该指令获取到完整的路径img.png并设置属性的值,而该指令事先不知道属性名称是什么。这可能吗?

更新资料

自从我最初发布此内容以来,对Angular进行了一些改进,因此我想分享一下我现在所做的事情。在HTML中,我使用Guido
Bouman的答案(即创建一个过滤器),现在有了Angular的 一次绑定 功能,这使其成为我认为的最佳选择。

不过,在JS代码中,现在$filter并没有globalVars在所有地方注入和常量,而是将单词添加static到静态内容服务器上托管的资产的任何路径之前{templateUrl: "static/someTemplate.html"},然后使用Angular HTTP
Interceptor查找以以下内容开头的任何路径“静态”并将其替换为静态服务器的域。很简单。


阅读 194

收藏
2020-07-04

共1个答案

一尘不染

<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,所以我在链接函数中对其进行了硬编码。

2020-07-04