Backgrid.js错误,“没有方法'省略'”?

时间:2013-06-26 19:02:34

标签: backbone.js underscore.js marionette backgrid

我正在使用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下载中包含的内容相匹配。

还有其他人遇到过这个或者有什么想法可能会导致这个问题吗?

1 个答案:

答案 0 :(得分:0)

只有one omit call in Backgrid

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)升级到最新版本。