我在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