在控制器中创建 HTML 元素,并将其拼接在作用域的文本中



我在作用域上有一些带有类似标签的文本[cid:ce743cbf-8c44-4c84-aa72-6d2c9eb4b81a] 这是从包含一些内联内容的电子邮件生成的。

我需要浏览文本并将标签替换为指向这些资源的实际链接。喜欢这个:

<a target="_self" href="/api/attachment/ce743cbf-8c44-4c84-aa72-6d2c9eb4b81a">Name</a>

我现在对更换零件没问题,但无法用angular.element创建实际元素。

这一切都适用于替换函数中的这个片段中的纯 javascript:

var link = document.createElement("a");
    link.innerText = name;
    link.setAttribute("href", url);
    link.setAttribute("target", "_self");
    return link.outerHTML;

由于某种原因,outerHTML拒绝在Firefox中工作。我怎样才能用angular.element做到这一点?

谢谢

更新

目前,我可以用简单的字符串连接来解决问题,这样:

return "<a target="_self" href=" + url + ">" + name + "</a>";

这是唯一适用于Firefox和Chrome的东西。但是这个选项感觉不像是正确的解决方案。

更新

还行。我在罗布斯答案的帮助下得到了它。

var link = angular.element("<a/>", {target: "_self", href: url, text: name});
return angular.element(link).wrap('<div>').parent().html();

这适用于两种浏览器。

尝试:

return angular.element(link).wrap('<div>').parent().html();

(灵感来自 https://stackoverflow.com/a/4741203/1358376)

因此,如果我理解正确,您有一个文本,其中有一个链接,并且您想使用 Jquery 调整该链接,而不是您可以使用: $("element").whatToDoWithIt
那会起作用如果你创建一个元素并且你没有放入正文,它就不会有一个外部HTML

最新更新