Backgrid не может отображать столбцы

Я только изучаю основы 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] не имеет метода listenTo, возникает в процессе инициализации сетки на этом шаге:

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

Есть ли проблема с тем, как я инициализирую сетку?

2 ответа

Решение

Проблема была с версией backbone.js, которую я использовал. Я рекомендую использовать правильную версию библиотек.

Backgrid.js зависит от 3 библиотек:

jquery> = 1.7.0, underscore.js ~ 1.4.0 и backbone.js ~ 0.9.10.

Вот простая структура о том, как его использовать.

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);
});
Другие вопросы по тегам