D3.js表附加相同的数据值

时间:2013-06-25 20:57:05

标签: javascript backbone.js coffeescript d3.js

我正在尝试以编程方式将“添加”行添加到我使用d3创建的表中。

        @appendLine line for line in arr
appendSingleColLine:(line)->
        newModel = new PhoenixModel()
        newModel.set({logLine : line})

        view = new RowView({model:newModel})
        view.render()
class RowView extends Backbone.View
    el : "tr"
    row : {}
    columns : {}
    line : {}
    tbody : {}

    render:()->
        #console.log "in render"
        @line = @options.model.get("logLine")
        @columns = @options.columns
        @tbody = @options.tbody
        @row = @tbody.selectAll('tr').data(@line).enter().append("tr")
        console.log "checking row"
        console.log @line
        console.log @row
        @row.selectAll("td").data(@line).enter().append("td").text((d)-> 
            return d
        )

结果是第一次数据输入三次。当我查看@row时,数组中的条目都为null,这就是我认为我的问题出现的原因。但是,我不知道为什么会发生这种情况,因为我认为我正在绑定新数据。

发生了什么事?

1 个答案:

答案 0 :(得分:1)

很难说这到底发生了什么。一个jsfiddle可以帮助。我的猜测是问题在于你绑定数据的方式。您正在构建一个表,这意味着绑定二维数据,这是一种特殊情况。

在这里查看表格示例:https://github.com/mbostock/d3/wiki/Selections#data。 请注意第二个data()绑定如何使用函数。这可能就是问题所在。

与d3或您的问题无关,但仅针对样式:@options.model可以替换为@model,Backbone会自动为您设置。