Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/386.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Backbone.js-集合未定义_Javascript_Backbone.js_Javascript Framework - Fatal编程技术网

Javascript Backbone.js-集合未定义

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

我正在尝试学习backbone.js,但是我一直在获取json并添加到集合中。集合没有定义,我不知道为什么。 代码:

json.php返回:

[
   {
      "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"

        });