私は Knockout と D3 (Data Driven Documents) の初心者です。私がやろうとしているのは、D3 に表示させる JS オブジェクトの配列を作成することです。現在、HTML の span タグにいくつかの単語を表示するだけです。私がやろうとしているのは、表示される名前を KO オブザーバブルにすることです。さらに下の行 (date[0].name 行) を変更すると、ビューはそれらの変更を取得します。なんらかの理由で、最後の行は効果がないようです。HTML を生成しているときに何かが欠けていて、KO が変更する正しい場所を見つける方法がわからないという理論を立てています。d3.select チェーンの最後に「attr(x, y)」呼び出しを追加して、データ バインド属性を追加しようとしましたが、KO にはそれらが一意である必要があると思います (ただし、よくわかりません)。どんな助けでも大歓迎です。
var data = [
{ "id": "1", "name": ko.observable("alpha"), ...
{ "id": "2", "name": ko.observable("bravo"), ...
{ "id": "3", "name": ko.observable("delta"), ...
];
ko.applyBindings(data);
d3.select("body").selectAll("span")
.data(data)
.enter()
.append("span")
.text(
function (d) {
return d.name();
}
);
data[0].name('october');