主干collection.each()不起作用
Backbone collection.each() is not working
当我尝试使用Backbone的collection.each()方法时,我收到以下消息:
TypeError: Object function(){返回父对象。应用(这个参数);}没有方法'each'。
我正在学习骨干从一些杰弗里方式教程;我输入了与他相同的代码,但由于某种原因,它不起作用。
var Person = Backbone.Model.extend({
defaults: {
name: 'besim dauti',
age: 15,
occupation: 'web developer'
}
});
var PeopleView = Backbone.View.extend({
tagName: 'ul',
render: function(){
this.collection.each(function(person) {
var personView = new PersonView({ model: person });
this.$el.append(personView.render().el)
}, this)
return this;
}
});
var PersonView = Backbone.View.extend({
tagName: 'li',
template: _.template( $('#personTemplate').html() ),
render: function(){
this.$el.html(this.template(this.model.toJSON()) );
return this;
}
});
var PeopleCollection = Backbone.Collection.extend({
model: Person
});
var peopleCollection = new PeopleCollection([
{
name: 'besim',
age: 25,
occupation: 'web developer'
},
{
name: 'gaurav',
age: 25,
occupation: 'web designer'
},
{
name: 'jeffry',
age: 27
}
])
var peopleView = new PeopleView ({collection: PeopleCollection});
$(document.body).append(peopleView.render().el);
为什么.each()
函数有这个问题?我输入了相同的代码,对于Jeffrey来说,它按预期工作,但对于我来说,它显示了这个错误。谢谢你的帮助。
需要初始化PeopleCollection
参见:var peopleView = new PeopleView ({collection: PeopleCollection});
传递的是原始构造函数,而不是它的实例。
你应该这样做:
var peopleCollection = new PeopleCollection(); // Create an instance of PeopleCollection
var peopleView = new PeopleView ({collection: peopleCollection}); // Pass it to peopleView
如果您熟悉OOP(面向对象编程),可以将PeopleCollection
视为一个类,而var peopleCollection = new PeopleCollection()
作为该类的实例。你必须使用实例。
你也会在.each
中遇到错误,因为你大写了person
。改变:
this.collection.each(function(person) {
var personView = new PersonView({ model: person });
this.$el.append(personView.render().el)
}, this)
您的代码在jsfiddle中运行良好。
http://jsfiddle.net/puleos/kbLES/var peopleView = new PeopleView ({collection: peopleCollection});
$(document.body).append(peopleView.render().el);
看起来你可能有一个依赖问题。你能张贴你是如何在页面上包括你的脚本吗?
相关文章:
- Jquery.each数组推送不起作用
- jQuery 循环 .each() JSON 键/值不起作用
- 为什么控制台.log在 .each 中不起作用
- jQuery each() 在 IE 7 中不起作用
- jQuery each() 不起作用
- 嵌套的车把JS #each 帮助程序,而EmberJS不起作用
- PHP for each 循环不起作用
- .next() 在 .each() 循环中不起作用
- Javascript for Each 不起作用
- 为什么当我在单独的函数中使用 $(this) 并在 .each() 中调用它时,它不起作用
- jQuery .each 循环在 Chrome 中不起作用
- jquery each|increment变量不起作用
- $.each()不起作用
- each()在IE8上不起作用,并给了我一个“;期望应用数组或参数对象”;.如何解决
- jquery .each() 不起作用
- jQuery each和width()不起作用
- 主干collection.each()不起作用
- jQuery when()似乎对each()不起作用
- 美元.each在jquery中的对象数组中不起作用
- 为什么.attr()对$(this)起作用,而对each()的参数不起作用?