私はangular2 webappにd3.js liquid fill gaugeを使用しようとしていますが、clippathは機能しません。つまり、全くウェーブが作成されていません。d3.js液体充填ゲージクリップパスが動作しない
angular2はtypescriptですが実行されているので、私は、構文エラーを修正するために何かを微調整しているので。クリップパスのコードスニペットは次のとおりです。
// The clipping wave area.
var clipArea = d3.svg.area()
.x(function(d) { return waveScaleX(d[0]); }) // it was d.x in js version
.y0(function(d) { return waveScaleY(Math.sin(Math.PI*2*config.waveOffset*-1 + Math.PI*2*(1-config.waveCount) + d[1]*2*Math.PI));}) // it was d.y in js version
.y1(function(d) { return (fillCircleRadius*2 + waveHeight); });
var waveGroup = gaugeGroup.append("defs")
.append("clipPath")
.attr("id", "clipWave" + elementId);
var wave = waveGroup.append("path")
.datum(data)
.attr("d", clipArea)
.attr("T", 0);
// The inner circle with the clipping wave attached.
var fillCircleGroup = gaugeGroup.append("g")
.attr("clip-path", "url(#clipWave" + elementId + ")"); //clippath not working
fillCircleGroup.append("circle")
.attr("cx", radius)
.attr("cy", radius)
.attr("r", fillCircleRadius)
.style("fill", config.waveColor);
どのように修正するかわかりません。変更が可能ですか?return waveScaleX(d.x)
〜return waveScaleX(d[0])
に失敗しますか?しかし、typescriptは以前の構文を受け入れません。
あなたはどのようなデータですか? typescriptがどんなエラーを投げていますか? – Mark
@Mark 'd.x'を使用すると、typescriptエラーは' Property 'x'が型[number、number] 'に存在しません。 'data'は' var data = [];のように作成された配列です。 (x i /(40 * waveClipCount)、y:(i /(40))}); for(var i = 0; i = 40 * waveClipCount; i ++){data.push } ' –
だから、私はこの質問に戻りました。私は[この例](http://plnkr.co/edit/hO43jixKR7D3IHWdmV29?p=preview)でエラーを再現することを本当に頑張った。私はtypescriptとangular2(リリース候補)を使用し、エラーを複製することはできません。 – Mark