我是骨干的新手,我正在尝试解决某些代码中的错误。问题是我有一个我似乎无法迭代的集合。如果我在每个循环之前放置一个断点,我可以看到该集合存在但循环仍然不会迭代它。这是我的代码。同样,我是骨干的新手,所以如果您需要任何合格的信息,请告诉我:
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() {
},
它有时会起作用。当它工作时,我可以迭代列表,但所有获取返回undefined。我不知道为什么我不能遍历列表或为什么代码行为不一致。这可能是由于异步性质还是存在某种竞争?
任何帮助都会很棒。
答案 0 :(得分:0)
如果它不起作用,可能是因为你的集合尚未被提取,所以你应该在获取集合后触发渲染(它会触发你必须要监听的重置事件)。
initialize : function() {
this.listenTo(this.collection, 'reset', this.render, this);
},
对于undefined属性,我会先尝试记录整个模型,以便检查它的内容。
console.log(report);