angularjs - 更改动态加载的 SVG 的颜色

标签 angularjs svg

我正在通过 AngularJS 插入 SVG:

<embed embed-src="{{sportImage}}" type="image/svg+xml" class="svg sport-image" width="470" height="418" />

但我无法通过CSS或JS更改svg或路径的填充。我猜这是因为 SVG 是在 API 返回结果后加载的。

有什么建议吗?

最佳答案

您需要在加载 <embed> 之后进行更改发生了。

<embed embed-src="{{sportImage}}" type="image/svg+xml" class="svg sport-image" width="470" height="418" onload="f()" id="something" />
<script>
    function f() {
        var svg = document.getElementById('something');
        var element = svg.getSVGDocument().getElementById("an-id-in-the-embedding");
        element.setAttribute("fill", "some-colour");
    }
</script>

关于angularjs - 更改动态加载的 SVG 的颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19470999/

相关文章:

angularjs - 使用 LoDash 合并包含相同键/值的对象

javascript - 无法在 AngularJS 服务中返回 fileReader 结果的值

javascript - 问题 - AngularJS 未捕获错误 : [$injector:modulerr]

javascript - 如何在不更改 textContent 值的情况下将字符附加到 SVG 文本元素?

html - 如何使以下 SVG 适合其父级(水平和垂直)?

JQuery 和 SVG - 如何查找 'g' 标签

javascript - formly 动态选项中的默认值

javascript - 使用 jsPDF 或其他库将 ng-grid 转换为 PDF?

javascript - 检测到 Canvas 元素在 Canvas 边界之外

css - SVG 比例变换具有运动