2013-06-26 4 views
0

Я работаю над приложением в магистральной сети и пытаюсь реализовать Backgrid.js, но я получаю эту ошибку:Ошибка Backgrid.js, «не имеет метода« опустить »?

Uncaught TypeError: Object function (a){return new m(a)} has no method 'omit' 

Это происходит, когда Backgrid.Grid инициализирует и, как представляется, связана с колонны. Я проверил свой синтаксис и даже создал упрощенный массив столбцов с 1 элементом и упрощенным объектом коллекции с единственным атрибутом, соответствующим столбцу.

var columns = [{name: 'year', label: 'Year', cell: 'string'}]; 
var data = [{year: '1964'}, {year: '1965'}]; 

Моя сетка инициализируется:

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

Довольно простой и прямой, но я все еще получаю эту ошибку. Я также проверил мои версии Backbone, Underscore, и они соответствуют тому, что включено в загрузку Backgrid.js.

Кто-нибудь еще сталкивается с этим или имеет какие-либо идеи, что может вызвать проблему?

ответ

0

Там только one omit call in Backgrid:

var passedThruOptions = _.omit(options, ["el", "id", "attributes", 
             "className", "tagName", "events"]); 

и _.omit был добавлен в Underscore 1.4.0 в сентябре прошлого года:

1.4.0 — Sept. 27, 2012
[...]

  • Added an omit function, for filtering an object to remove certain keys.

Так предположительно вы используете версию Backgrid, что ожидает, по крайней мере Подчеркиваем 1.4.0, но вы фактически используете старую версию Underscore. Попробуйте обновить Underscore (и Backbone, пока вы на нем) до последней версии.

+0

Покажите, как «тщательная перепроверка» ваших исходных файлов на самом деле требует тщательной перепроверки. Спасибо, что проснулся. Это исправило эту проблему. –