5
使用D3 JS開發角度應用程序,並面臨無法更改svg填充顏色的問題。D3角度混淆:填充顏色不變
如果你看看這個代碼,你可以看到,我創建一個SVG和試圖插入從我的供應商的另一個問題:
function link (scope, element, attrs) {
var svgContainer = d3.select(element[0]).append("svg")
.attr("width", $window.screenX - 2*100)
.attr("id", "oil-game")
.attr("height", 1200);
var well = svgContainer.append("g");
angular.forEach(scope.d3WellDetails, function (value, key) {
var circle = well.append("circle")
.attr("cx", 55)
.attr("cy", 100 + key*115)
.attr("r", 40)
.attr('stroke', '#0897c7')
.attr('stroke-width', '5')
.attr('fill', 'white');
well.append("text")
.attr('x', 50)
.attr('y', 85 + key*115)
.attr('fill', '#0897c7')
.attr('font-size', 16)
.attr('font-weight', 900)
.text(value.Name);
well.append('svg:image')
.attr('xlink:href', '../../images/wells.svg')
.attr('x', 40)
.attr('y', 95 + key*115)
.attr("width", 30)
.attr("height", 30)
.attr('fill', '#0897c7');
});
}
我要你看看到最後一部分,當我追加新SVG。如果我使用的是.attr('xlink:href', '//')
,我無法更改svg的填充顏色。
但是,如果我使用.attr('src', '//')
我看不到svg圖像,但在開發人員工具,我可以看到它爲空。
我該如何解決?
你問改變填充屬性在進口svg(../../images/w ells.svg)...我不認爲它可能會像你所做的那樣。然而,一種方法是做一個ajax來獲取wells.svg,然後在well.svg中添加填充樣式屬性,然後添加它.. – Cyril
@Cyril關鍵是我無法用css也不通過改變填充svg指示。只有當我在svg中設置屬性'fill =「#color」'時,才進行填充更改。這是一種預期的行爲嗎?我不這麼認爲。也許我錯誤了,當我把svg指令? –
你不能改變'' –