我使用Angular2 + D3创建图表
我想在条形图上应用svg滤镜以创建阴影效果
创建过滤器并且条形应用了filter: url("#dropshadow")
样式时,阴影不会呈现
这可能是由于Angulars单页和url()
没有找到过滤器?解决这个问题的正确方法是什么?
答案 0 :(得分:3)
我终于明白了。最好的解决方案似乎是通过
注入位置import { Location } from '@angular/common';
...
constructor(private location: Location)
然后使用它来指定url()
.style('filter', 'url(' + this.location.path() + '#drop-shadow)')
现在它按预期工作。
答案 1 :(得分:0)
以防万一有人到达这里,而这还不够清楚,这就是我为Safari在url
中使用的任何<svg>
做的事情:
我在组件中导入位置
import { Location } from '@angular/common';
...
constructor(private location: Location) {
}
url(id: string) {
return `url(${this.location.path()}${id}`;
}
}
然后按如下所示在内联<svg>
标签中使用它
[attr.filter]="url('#filter-11')"
[attr.clip-path]="url('#clip')"