Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 无法使用Backbone.js迭代集合_Javascript_Backbone.js_Backbone Views - Fatal编程技术网

Javascript 无法使用Backbone.js迭代集合

Javascript 无法使用Backbone.js迭代集合,javascript,backbone.js,backbone-views,Javascript,Backbone.js,Backbone Views,我对主干网非常陌生,我正在尝试对某人代码中的错误进行故障排除。问题是我有一个似乎无法重复的集合。如果在每个循环之前放置一个断点,我可以看到集合存在,但循环仍然不会在其上迭代。这是我的代码。同样,我是主干网新手,因此如果您需要任何符合条件的信息,请让我知道: var ReportsListView = ActivityDBView.extend({ render: function() { this.collection.each(function(re

我对主干网非常陌生,我正在尝试对某人代码中的错误进行故障排除。问题是我有一个似乎无法重复的集合。如果在每个循环之前放置一个断点,我可以看到集合存在,但循环仍然不会在其上迭代。这是我的代码。同样,我是主干网新手,因此如果您需要任何符合条件的信息,请让我知道:

var ReportsListView = ActivityDBView.extend({   

    render: function() {      
        this.collection.each(function(report) {
            console.log(report.get('canEdit'));
            console.log(report.get('programSpecific'));
        }, this);


    },
    drawReportList: function(reports, title, includeEditLinks) {

});
但是,如果在渲染之前添加此选项:

  initialize: function() {
  },
它有时会起作用。当它工作时,我可以遍历列表,但所有get返回未定义。我不知道为什么我不能遍历列表,或者为什么代码行为不一致。这可能是由于异步的性质,还是因为存在某种竞争


任何帮助都会很好。

当它不起作用时,可能是因为您的集合尚未获取,因此您应该在获取集合后触发渲染(它会触发一个重置事件,您必须侦听该事件)

对于未定义的属性,我将首先尝试记录整个模型,以便您可以检查它有什么

console.log(report);

您是否已将断点放在行
console.log(report.get('canEdit'))上?您的
初始化
方法可能会覆盖现有方法,因此会停止调用该方法。
ActivityDBView
是否有
initialize
方法?您好,是的,我意识到我使用的调试错误。因此,列表正在迭代,但值显示为未定义。有什么想法吗?没有,ActivityDbViewHello中没有初始化,谢谢您的回复。看来我用错了调试器。但是,即使我可以遍历该列表,GET仍然是未定义的。我确实尝试记录报表对象。虽然它打印出了很多关于对象的信息,但我实际上没有看到任何关于特定属性(canEdit或ProgramSpecific)的信息。报表对象是否有名为attributes的属性?在这一部分中,您应该可以找到canEdit或ProgramSpecific。但我认为问题出在代码的其他地方。你从哪里取藏品?外部API?也许你应该先调试集合定义。是的,我认为这是一个API。有一个名为Attributes的属性,但预期字段不存在。取而代之的是proto:、defineGetter、defineSetter等。您可以发布您的报告模型和报告集合的代码吗?
console.log(report);