Javascript Backbone.js-集合未定义
我正在尝试学习backbone.js,但是我一直在获取json并添加到集合中。集合没有定义,我不知道为什么。 代码: json.php返回:Javascript Backbone.js-集合未定义,javascript,backbone.js,javascript-framework,Javascript,Backbone.js,Javascript Framework,我正在尝试学习backbone.js,但是我一直在获取json并添加到集合中。集合没有定义,我不知道为什么。 代码: json.php返回: [ { "name":"Wine 1", "price":"100", "status":"available" }, { "name":"Wine 1", "price":"100", "status":"available" }, { "n
[
{
"name":"Wine 1",
"price":"100",
"status":"available"
},
{
"name":"Wine 1",
"price":"100",
"status":"available"
},
{
"name":"Wine 1",
"price":"100",
"status":"available"
}
]
我正在本地主机上测试这一点。欢迎来到SO:)这是您的第一个问题,让我来做一个值得纪念的问题。当您说集合未定义时,您可以向我们提供行号(或突出显示行号),以便进行调试。在initialize
方法中,如果您想引用想要引用的对象(默认为window
object),而不是下面的do#1,则必须将.bindAll(this)
放入方法中
1.
也试试这个
window.WineListView = Backbone.View.extend({
tagName: 'ul',
initialize: function () {
_.bindAll(this);
this.model.on('reset', this.render);
},
render: function () {
#1
}
});
万一你迷路了,这里有一份代码副本,你打了一个愚蠢的错别字:
window.WineCollection = Backbone.Model.extend
应该是
window.WineCollection = Backbone.Collection.extend
请注意,按照惯例,您的WineListView
类应该使用this.collection来引用winecolection
的实例,主干集合对象提供下划线迭代方法,而不是
.each(this.model.models, function(wine) {
做
你应该改变
window.WineCollection = Backbone.Model.extend({
model: Wine,
url: "wine.json"
});
到
谢谢你的帮助。我在第37行得到了this.model.each不是一个函数
。而且this.wineList在第37行没有定义
67@SebastianLucaciu很抱歉,它不是每个,它是forEach
\uEach(列表、迭代器、[context])别名:forEach
,,所以我认为u.每个都应该有效。问题是这个.model.models
没有定义
window.WineCollection = Backbone.Collection.extend
.each(this.model.models, function(wine) {
this.collection.each(function (wineModel) {
window.WineCollection = Backbone.Model.extend({
model: Wine,
url: "wine.json"
});
window.WineCollection = Backbone.Collection.extend({
model: Wine,
url: "wine.json"
});