在我的 Backbone.js 项目中,我的模型在我在集合中调用'add'方法后没有更新。我不明白为什么。
我肯定我做了什么坏事,但我不知道是什么。
https://github.com/blured75/CardScores/blob/master/public/js/tweets.js
在我的视图的initialize函数上,我调用bind 'add'到这个.render(视图的)
initialize: function() {
this.model.on('add', this.render, this);
},
在我的视图的渲染函数中,这个.model没有特定的属性,只有{length:1,型号:Array(1),_byId:{...},事件(_E):{...}}
render: function() {
console.log('in render this.model', this.model);
...
}
用于#new-tweet的submit事件的函数调用良好,并且tweet对象填充良好:
The method $('#new-tweet').submit(function(ev) {
var tweet = new Tweet({ author: $('#author-name').val(), status: $('#status-update').val()});
console.log('adding : ', tweet.toJSON());
tweets.add(tweet);
return false;
});
除了使用旧的框架之外,您是否看到了一些错误?
1条答案
按热度按时间iovurdzv1#
【描述】
问题是,_.each的第一个参数必须是“list”。
作为您的console.log(this.model)在TweetsView中,虽然它是一个 Backbone.js 集合...
它是一个对象。
使其不能正常工作。
[改进]
我提供两种方式:
1.使用Backbone.Collection的each函数。
1.因为this.model.models是数组,直接访问即可。