javascript – 如何在Recline JS中将记录附加到数据集?

我正在使用相当不错的 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);

相关文章

前言 做过web项目开发的人对layer弹层组件肯定不陌生,作为l...
前言 前端表单校验是过滤无效数据、假数据、有毒数据的第一步...
前言 图片上传是web项目常见的需求,我基于之前的博客的代码...
前言 导出Excel文件这个功能,通常都是在后端实现返回前端一...
前言 众所周知,js是单线程的,从上往下,从左往右依次执行,...
前言 项目开发中,我们可能会碰到这样的需求:select标签,禁...