1

我只是在学习 backgrid.js 的基础知识。因此,当我尝试在主页Backgrid.js上复制代码时,由于在为列传递对象数组时出现特定错误,我无法呈现网格。我相信我使用了正确的格式

 var columns = [
    { name: "name", label: "Name", cell: "string" },
    { name: "address", label: "Address", cell: "string" },
    { name: "tel", label: "Phone", cell: "integer" },
    { name: "email", label: "Email", cell: "string" },
    { name: "type", label: "Contact Type", cell: "string" }
];

在这一步初始化网格的过程中出现Uncaught TypeError: Object [object Object] has no method 'listenTo'的错误:

    var grid = new Backgrid.Grid({
        columns: columns,
        collection: this.collection
    });

我如何初始化网格有问题吗?

4

2 回答 2

2

问题出在我使用的backbone.js 版本上。我建议使用正确版本的库。

Backgrid.js 依赖于 3 个库来运行:

jquery >= 1.7.0, underscore.js ~ 1.4.0, 和bone.js ~ 0.9.10。

于 2013-02-11T14:20:43.343 回答
0

这是一个关于如何使用它的简单结构。

HTML

<div id="container"></div>

JS

$(function(){
    /** Columns definition */
    var columns = [
    { name: "name", label: "Name", cell: "string" },
    { name: "address", label: "Address", cell: "string" },
    { name: "tel", label: "Phone", cell: "integer" },
    { name: "email", label: "Email", cell: "string" },
    { name: "type", label: "Contact Type", cell: "string" }
    ];

    /** Model instance */
    var mdl = Backbone.Model.extend({});

    /** Collection instance */
    var col = Backbone.Collection.extend({
        model: mdl  
    });

    /** Test array of JSON (usually coming from a server) */
    var json = [
        {"name": "Goose", "address": "a 1st address", "tel": 25500100, "email": "w@test.net","type": 1},
        {"name": "Ducky", "address": "a 2nd address", "tel": 25500123, "email": "w@test1.net","type": 2}
   ];

   /** Create the Grid */
   var grid = new Backgrid.Grid({
      columns: columns,
      collection: new col(json)
   });

   /** Add the Grid to the container */
   $("#container").append(grid.render().$el);
});
于 2013-02-08T21:32:46.720 回答