我在Ember-cli应用程序中使用D3.js生成SVG可视化。 的SVGs利用了通过id属性访问的过滤器和标记:使用Ember CLI使用History API时损坏的SVG过滤器id链接
<svg>
<defs>
<filter id="filterId">
...
</filter>
</defs>
<g>
<g class="nodes">
<circle filter="url(#filterId)" ...></circle>
</g>
</g>
</svg>
这个工程索引页面上精(网址:),但穿越到其他路由时被打破(例如:\ otherRoute)。它将工作在其他路线,如果我改变圈为
<circle filter="url(./otherRoute#filterId)" ...></circle>
但它然后在索引和所有其他页面上打破。
我可以通过在每个路由上构建svg元素或通过在ember-cli(使用/#routeUrl而不是/ routeUrl)中使用散列位置类型来手动将url添加到#filterId来修复它,但是想知道是否有一种通用的方式来自动链接到当前的网址,所以我仍然可以使用历史API?
将过滤器放在一个独立的SVG文件中,并给它一个绝对的URL? – 2014-10-01 07:21:01
这对我来说是一个非常重要的问题。我在一个嵌套组件中渲染一个amCharts图表,由于这个问题,我的图表有时候看起来很奇怪。在我切换到哈希URL后,问题消失了。问题是我对amCharts如何生成svg元素没有太多的控制。有关如何调整amCharts与Ember.js中的嵌套组件良好发挥的任何提示? – Greg 2016-01-31 18:24:47