0

我正在开发 Backbone 中的应用程序并尝试实现 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 下载中包含的内容相匹配。

还有其他人遇到过这个问题或有任何想法可能导致问题吗?

4

1 回答 1

0

Backgrid 中只有一个omit调用:

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

并于去年 9 月_.omitUnderscore 1.4.0中添加:

1.4.0 - 2012 年 9 月 27 日
[...]

  • 添加了一个omit功能,用于过滤对象以删除某些键。

因此,大概您使用的 Backgrid 版本至少需要 Underscore 1.4.0,但您实际上使用的是旧版本的 Underscore。尝试将Underscore(以及使用它的Backbone)升级到最新版本。

于 2013-06-26T19:35:50.507 回答