我正在使用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下载中包含的内容相匹配。
还有其他人遇到过这个或者有什么想法可能会导致这个问题吗?
答案 0 :(得分:0)
var passedThruOptions = _.omit(options, ["el", "id", "attributes",
"className", "tagName", "events"]);
去年9月在Underscore 1.4.0添加了和_.omit
:
1.4.0 - 2012年9月27日
[...]
- 添加了
omit
函数,用于过滤对象以删除某些键。
所以大概你使用的是Backgrid版本,它至少需要Underscore 1.4.0,但实际上你使用的是较旧版本的Underscore。尝试将Underscore(以及Backbone)升级到最新版本。