在 d3.js 中重新绑定数据的最佳方法
Best way to rebind data in d3.js
我正在使用d3.js库根据数据生成内容。
下面是一个简化的示例。
data_arr = [0,1,2,3,4];
d3.select("#mylist").selectAll('li').data(data_arr).enter().append("li").html(
function(d)
{
var element = document.createElement('div');
element.innerHTML = '<div id="innerDiv">' + d + '</div>';
return element.innerHTML;
});
例如,如果我更改数组,新数据为 [5,3]。重新绑定和显示新 html 的最佳方法是什么?我是否必须再次调用相同的句子,还是更好的方法?
考虑更复杂的数据结构的情况。即
data_arr = [obj1, obj2, obj3, obj4];
和
element.innerHTML = '<div id="innerDiv">' + d.field + '</div>';
如果我做obj1.field = 'newValue'会发生什么。如何重新绑定?
谢谢!
使用函数。例如,下面是一个将从字符串数组填充列表的函数:
function list(ul, data) {
var li = ul.selectAll("li").data(data);
li.exit().remove();
li.enter().append("li");
li.text(function(d) { return d; });
}
现在,如果要初始化列表,可以说:
d3.select("#list").call(list, [0, 1, 2, 3, 4]);
然后稍后如果你想更新,你可以说:
d3.select("#list").call(list, [5, 3]);
如果你愿意(并且你不需要方法链接),你可以在没有 selection.call 的情况下编写这个:
list(d3.select("#list"), [5, 3]);
相关文章:
- 在Knockout中绑定数据后获取数据
- 使用Angular not Binding引导模式绑定数据
- FusionCharts MVC - JSON Result 未绑定数据
- 如何在 js / jquery 中绑定“数据追加”事件
- AngularJS如何绑定数据
- AngularJs的Kendo UI:当用户在网格中选择行时,如何在文本框字段上绑定数据
- angularjs:自定义直接中的绑定数据在使用“”后不再更新;track-by-;在ng重复中
- 访问表单控制AngularJS中的值,而不绑定数据
- 使用d3.js在绑定数据内数组(以恒定性动态生成d3.svg.line)
- 在 Angular 中的控制器之间绑定数据
- 在网格视图中显示不同的消息,用于没有绑定数据和未检索到结果
- kendoui 网格,当自动绑定配置设置为 false 时绑定数据
- 在 d3.js 中重新绑定数据的最佳方法
- 绑定数据在 d3.js 中不起作用
- 当本地绑定数据为整数时,对剑道 UI 网格进行筛选
- 控制器外部的角度绑定数据
- 在点击事件上获取绑定数据
- 使用下拉列表绑定数据
- 如何在 d3.js 中更新绑定数据
- 如何在 Handlebars.js 模板上绑定数据以进行自动值更新