在教程中的结点和数据操作一节已经说明了数据绑定的概念和意义,这里就简单的列出全部接口。
clayObject.datum(data[, calcback]);
该方法用于把数据绑定到一组结点或返回第一个结点数据,不带任何参数表示获取数据,带一个参数表示设置clay对象维护的全部结点数据为data。带两个参数的写法参考如下:
clayObject.datum(data, function(temp, index){
// 应该返回一个数据,该数据就是最终设置的值
});
其中temp就是datum的第一个参数值,index表示当前设置的结点序号。
var update=clayObject.data(datas[, calcback]);
该方法用于把一组数据绑定到一组结点或返回一组结点数据,和datum一样,不带参数表示获取数据,带一个参数表示设置clay对象维护的全部结点数据为data,只不过第一个参数应该是一个数组。同样的,带两个参数的写法和上面的写法一样,就不赘述了。
不同的是,一组数据绑定到一组结点可能会存在一个问题:结点数目和数据数目不一致。因此后面还提供了两种方法来处理这种问题(事实上,这两种方法就是专门为data方法设计的)。
var enter=update.enter(template);
update是clay对象调用data方法后返回的对象,其中记录着数据和结点个数差异信息,调用enter方法会返回一个新的clay对象,该对象记录着由多于结点的数据信息创建的结点集合。
参数template应该是一个字符串,表示新添加的结点是什么,可以有两种写法:
update.enter('div')、update.enter('line')
update.enter('<line></line>')、update.enter('<line class="enter"></line>')
var exit=update.exit();
和enter方法相对应,会返回一个clay对象(该对象维护着多于数据部分的结点),一般调用remove方法删除就可以了。