骨干.js - 从推文中删除模型时出现奇怪的问题
Backbone.js - weird issue when removing a model from a tweet.
我在骨干网方面遇到了一些问题.js。 虽然我的所有代码都可以工作,但我确实得到了一个异常: TypeError: 'undefined' is not an object (evaluating '(e=this.models[c]).cid')
.
当模型数量超过限制时,就会发生异常,我在集合中调用 self.remove()。
var Column = Backbone.Collection.extend({
initialize: function(col) {
var view = new ColumnView({
id: "column_" + col.id,
column: col
});
view.render();
},
comparator: function(tweet) {
return tweet.get('created_at_time');
},
clean: function() {
var self = this;
var total = this.models.length;
var threshold = (total - window.config.threshold) - 1;
if(threshold > 0) {
console.log("Removing if tweet is older then " + threshold);
this.models.forEach(function(tweet, index) {
if(index < threshold) {
self.remove(tweet);
}
});
}
}
});
有谁知道发生了什么?该错误发生在野生动物园上。
猜测一下,这是由于您在迭代模型列表时删除模型而导致的。
尝试
if (threshold > 0) {
var removed = [];
this.models.forEach(function (tweet, index) {
if (index < threshold) {
removed.push(tweet);
}
});
this.remove(removed);
}
或@mu建议的变体
if (threshold > 0) {
var removed = this.filter(function(model, index) {
return index < threshold;
});
this.remove(removed);
}
或者在您的情况下可能更简单
if (threshold > 0) {
this.remove(this.models.slice(0, threshold));
}
相关文章:
- Ext.js从json构建模型关系的问题
- 使用导航属性创建Kendo UI网格模型的问题
- 将输入值设置为ng模型属性[Angular]时出现问题
- 使用 ng 模型获取数据时遇到问题
- Webgl 加载 json 模型问题
- 骨干.js - 从推文中删除模型时出现奇怪的问题
- 面临从模型中为下拉列表设置值的问题
- 骨干模型验证问题
- 第一步's与THRE.js:试图将搅拌机模型添加到场景中的问题
- 骨干.js模型中的几个问题
- 从 ko.computed 语句中的视图模型调用视图模型时遇到问题
- 文档对象模型问题
- 骨干模型保存问题
- 在另一个模型中引用/填充猫鼬模型时出现问题
- 主干模型/集合中的Javascript范围界定问题
- Ember.js成员模型泄漏问题
- Sails.js-尝试显示模型数据时出现问题
- 在EmberJS中创建模型实例的问题
- 当模式位于单独的文件中时,创建模型时是否存在任何问题
- 更新Angular Directive的值时出现问题's模型,同时从表单的监视进行更新