我正在使用相当不错的
JavaScript库Recline
http://okfnlabs.org/recline/它围绕Backbone构建.它也使用SlickGrid.
有很多例子,当然还有源代码也可以看看.我自己已经有很长的路要走了 – 写我自己的后端,并以一个光滑的视图显示数据.
但是,在示例中找不到的一件事是如何将记录附加到数据集中.我想绑定一个按钮的操作,所以我可以在数据集的末尾附加一个空记录,所以我可以使用slickgrid视图来编辑数据.
我似乎能够添加记录的唯一方法是往返服务器,但我不想这样做,因为这将涉及必须发布有效的数据,因为实际上我不想要空白我的数据集中的行.在通过REST将数据实际发布到服务器之前,我希望在浏览器客户端上添加几行可能.
此时的代码看起来像这样.
$(document).ready(function() { var dataset = new recline.Model.Dataset({ url: '/rest/monitors',backend: 'restlet',}); dataset.fetch().done(function(dataset) { var $el = $('#mygrid'); var grid = new recline.View.SlickGrid({ model: dataset,el: $el,state: { gridOptions: {editable: true,enableCellNavigation: true},columnsEditor: [ {column: 'monitoruntil',editor: Slick.Editors.Date },{column: 'enabled',editor: Slick.Editors.CheckBox },{column: 'owneremail',editor: Slick.Editors.Text},{column: 'normalinterval',editor: Slick.Editors.Text} ],columnsWidth:[{column: 'owneremail',width: 100},{column: 'url',width: 300},{column: 'lastaccessed',width:100 }] } }); grid.visible = true; grid.render(); //Bind Save Button to a function to save the dataset $('#savebutton').bind('click',function() { //alert($(this).text()); dataset.save(); }); });;
})
使用此代码,我只能编辑和保存已经使用“restlet”后端提供的现有记录.
解决方法
它看起来你正在寻找dataset.records.add()
试用here在开发控制台:
var dataset = new recline.Model.Dataset({ records: [ {id: 0,date: '2011-01-01',x: 1,y: 2,z: 3,country: 'DE',title: 'first',lat:52.56,lon:13.40},{id: 1,] }); createExplorer(dataset); var i=2; setInterval(function() {dataset.records.add({id: i,lon:13.40});i++;},2000);