javascript - Angular2 中的动态着色图形

标签 javascript html css angular svg

我有一个 angular2 应用程序,在我的一个组件中,我想显示系统各个元素的性能。所以我有以下图形:

enter image description here

这是一个 svg,所以我想我会用 #box1 手动标记盒子, 所以我可以做类似 @ViewChild('box1') stage1: ElementRef; 的事情,但是,任何添加的 angulr2 似乎都会停止 svg 渲染。

我的模板当前有 <object id="img" data="assets/img/big_layout.svg" width="292" height="164"></object>

如何创建这样的图像并以编程方式更改其部分颜色?

我想也许这可以在 div 中绘制并使用 css,但要使其全部正确缩放会非常困难,但如果有某种方法可以生成它,那可能是一种选择吗?

更新:

这是一个plunk如果我将任何特定于 Angular 代码放入 svg 文件中,以显示渲染问题。

最佳答案

您无法在 <object> 中获取对元素的引用通过ViewChild

作为解决方法,我可以为您提供以下方式:

查看:

<object ... #svg (load)="load(svg.contentDocument)"></object>

组件

load(svgDoc) {
  let box1 = svgDoc.getElementById("station1");
}

另请参阅实际操作 Plunker

关于javascript - Angular2 中的动态着色图形,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40196426/

相关文章:

javascript - 在 webgl 中渲染到纹理

javascript - 使用 Javascript(客户端)生成带有页眉和页脚的 PDF

html - 2 个 div,并排放置,右侧 div 占据包含 div 的剩余部分

html - 如何对齐部分 div 内容?

html - 为什么要给伪元素添加 block 级别?

javascript - 如何在 React JS 中的输入字段中插入图像?

javascript - Wix react-native-navigation 改变Tab和推屏

javascript - 使用 Jquery 清除输入文本字段值

css - 如何使用 CSS sprites 创建图像链接

css - 在 Liferay 中,它从哪个文件夹中获取用于缩小过程的 CSS 文件?