Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/382.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 无法在控制台上打印模型数据_Javascript_Backbone.js - Fatal编程技术网

Javascript 无法在控制台上打印模型数据

Javascript 无法在控制台上打印模型数据,javascript,backbone.js,Javascript,Backbone.js,在这里,我写上面的代码是为了在控制台上显示一些数据,但当我尝试在控制台上显示以下错误消息时,我对主干js是新手。你能告诉我哪里错了吗 define(function(require) { var $ = require('jquery'), Backbone = require('backbone'), People = Backbone.Model.extend({ initiali

在这里,我写上面的代码是为了在控制台上显示一些数据,但当我尝试在控制台上显示以下错误消息时,我对主干js是新手。你能告诉我哪里错了吗

    define(function(require) {
        var $ = require('jquery'),
                Backbone = require('backbone'),
                People = Backbone.Model.extend({
            initialize: function() {

                var people_object = new People({name: "How Bizarre", artist: "OMC"});
                var people_collections = new PeopleCollection([people_object]);
                console.log(people_collections.models);
            }

        }),
        PeopleCollection = Backbone.Collection.extend({
            model: People,
        });

        return {
            People: People,

        };

    });



  require(['jquery', 'backbone', 'app/models/persons'], function($,Backbone,persons{           
           var p = new persons.People();
   });

w、 挑
a、 模型
R
主干.Model.extend.initialize
a、 模型
R
主干.Model.extend.initialize
a、 模型
R
主干.Model.extend.initialize
a、 模型

首先,您的错误发生在循环依赖(无限循环)中,因为您有一种无限递归。任何时候你初始化人员,比如
newpeople()
initialize
该模型的方法调用相同的“newpeople()”等等

我猜你正在使用

所以试着这样做:

human.js

<error>
w.pick
a.Model
r
Backbone.Model.extend.initialize
a.Model
r
Backbone.Model.extend.initialize
a.Model
r
Backbone.Model.extend.initialize
a.Model
define(function(require){
    var Backbone = require('backbone');

    var Human = Backbone.Model.extend({
       defaults: {
          name: 'Test', 
          surname: 'Testovyan', 
          sex: 1
       }
    });

    return Human;

});
define(function(require){
    var Backbone = require('backbone');
    var Human = require('path/to/human');
    var People = Backbone.Collection.extend({
        initialize: function () {
           console.log(this);
        },
        model: Human,
        url: '/path/to/remote/url'
    });

    return People;
});
people.js

<error>
w.pick
a.Model
r
Backbone.Model.extend.initialize
a.Model
r
Backbone.Model.extend.initialize
a.Model
r
Backbone.Model.extend.initialize
a.Model
define(function(require){
    var Backbone = require('backbone');

    var Human = Backbone.Model.extend({
       defaults: {
          name: 'Test', 
          surname: 'Testovyan', 
          sex: 1
       }
    });

    return Human;

});
define(function(require){
    var Backbone = require('backbone');
    var Human = require('path/to/human');
    var People = Backbone.Collection.extend({
        initialize: function () {
           console.log(this);
        },
        model: Human,
        url: '/path/to/remote/url'
    });

    return People;
});
控制器或视图.js

<error>
w.pick
a.Model
r
Backbone.Model.extend.initialize
a.Model
r
Backbone.Model.extend.initialize
a.Model
r
Backbone.Model.extend.initialize
a.Model
define(function(require){
    var Backbone = require('backbone');

    var Human = Backbone.Model.extend({
       defaults: {
          name: 'Test', 
          surname: 'Testovyan', 
          sex: 1
       }
    });

    return Human;

});
define(function(require){
    var Backbone = require('backbone');
    var Human = require('path/to/human');
    var People = Backbone.Collection.extend({
        initialize: function () {
           console.log(this);
        },
        model: Human,
        url: '/path/to/remote/url'
    });

    return People;
});
这里是使用相同的代码

这是创建人员集合的最佳方式。 创建模型,使用引用模型的模型属性创建集合。然后使用对象数组初始化集合,然后这些对象将自动成为模型,或者在不使用模型的情况下初始化集合并从远程获取它们


希望这有帮助。

为什么要在模型中创建集合?这段代码中有一些bug。我将尝试解释如何使用
主干.Model
主干.Collection