Backbone.js 主干1.1.2:对于在早期版本中工作的行为,“未定义不是函数”

Backbone.js 主干1.1.2:对于在早期版本中工作的行为,“未定义不是函数”,backbone.js,backbone-views,Backbone.js,Backbone Views,我是主干网的新手,正在将使用BB0.5.3编写的项目迁移到1.1.2。在1.1.2中,我得到以下错误: 未捕获类型错误:未定义不是函数 相关摘录: reportGen = { .... initialize: function() { var reports = [ this.Views.Report1, this.Views.Report2, this.Views.Report3 ]; new this.Views.App

我是主干网的新手,正在将使用BB0.5.3编写的项目迁移到1.1.2。在1.1.2中,我得到以下错误:

未捕获类型错误:未定义不是函数

相关摘录:

reportGen = {
....
initialize: function() {
    var reports = [
        this.Views.Report1,
        this.Views.Report2,
        this.Views.Report3
    ];
    new this.Views.App({reports: reports});
}
};
以及:

当我在主干网0.5.3,或者实际上是0.9.10之前的版本中运行它时,一切似乎都正常。我得到了我期望的界面和行为。但是在版本0.9.10和之后,我得到了前面提到的错误

我已经查看了0.5.3和1.1.2中报表对象的内容,我可以访问相同的项目,例如,报表的名称。但我不知道是什么从0.9.9更改为0.9.10及更高版本导致代码失败

错误发生在以下行:

var R=新R

如果我使用

var R=新R

相反

0.9.10的变更日志似乎没有适用于我的案例的任何内容

有什么建议吗

更新:我仍然对发生的事情相当困惑。我觉得我在概念上肯定遗漏了什么。在每一个层面上检查这篇文章的内容都没有让我有所收获


更新2:我已经创建了,但是行为有些不同-这一次,出现了错误,但是我可以在下拉列表中看到报告名称。尽管如此,在1.1.2中,未定义的不是一个函数错误,但在0.9.9和更早版本中不是。

也可能是删除的两个函数之一。但是,您的代码摘录不包含任何内容。检查你的其他代码你具体从哪里得到这个错误?@muistoshort我编辑了这篇文章来解释错误发生的地方。我忘了在运行之前添加它。@exussum:我已经检查了其他代码,没有出现make或change方法。
reportGen.Views.App = Backbone.View.extend({
....

initialize: function(reportList) {
    _.bindAll(this, 'render', 'switchReports');
    this.reports = reportList['reports'];
    this.render();
},
render: function() {
    var i = 0;
    var reportList = {reports : []};
    _.each(this.reports, function(r) {
        var R = new r;
        reportList.reports.push({name: R.name, label: R.label, index:i});
        R.close();
        i++;
    }, this);

    var out = $.tmpl( this.template(), reportList  );
    $(this.el).append(out);

    // now render the default Report
    var defaultReport = this.reports[0];
    this.currentReport = new defaultReport();
    $("div#report-container").html(this.currentReport.render().el);
    this.afterReportRender();

},
....
});