Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.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 Backbonejs-如何打印提取结果?_Javascript_Json_Backbone.js_Dto - Fatal编程技术网

Javascript Backbonejs-如何打印提取结果?

Javascript Backbonejs-如何打印提取结果?,javascript,json,backbone.js,dto,Javascript,Json,Backbone.js,Dto,嗨,我是主干网的新手,我只是在玩一下,下面是我的代码: var Users = Backbone.Collection.extend ({ url : 'http://backbonejs-beginner.herokuapp.com/users' }); var users = new Users(); users.fetch({ success: function () { console.log(us

嗨,我是主干网的新手,我只是在玩一下,下面是我的代码:

    var Users = Backbone.Collection.extend ({
        url : 'http://backbonejs-beginner.herokuapp.com/users'
    });

    var users = new Users();
    users.fetch({
        success: function () {
            console.log(users);
        }
    });
fetch调用成功,返回的对象如下:

[
  {
    "id": "hqel839m1071rbggsxf7",
    "firstname": "Thomas",
    "lastname": "Davis",
    "age": 12
  }
]
如何打印结果的不同部分? 例如,我想打印第一项的“id”参数。我可以像数组一样迭代它吗

我尝试执行
console.log(用户[0].id)
,但不起作用


谢谢。

有三种不同的方式访问主干网收藏中的模型。首先,您可以使用
.get
方法根据模型的唯一ID查找模型。这基本上会查看集合中的所有模型,并将其
ID
属性与提供的属性进行比较

var user = collection.get('unique_id'); // return an instance, or null
第二种方法是使用
.at
方法按索引获取模型。如果对模型进行了排序,这将非常有用。如果未对它们进行排序,则将按插入顺序(即它们提供给集合的顺序)获取它们:

最后,您可以访问集合包装的原始模型数组。您可以通过
.models
属性来访问它,该属性只是一个数组。这不是推荐的方法

var user = collection.models[0];
拥有用户后,您可以通过模型上的
.get
方法访问用户的任何属性:

var age = user.get("age");
user.set("age", 100);

您可以查看model
get
方法的文档,以及
Backbone.Collection
的文档,不要忘记传递给
Collection.fetch的
success
回调的
参数,这些参数是
(收集、响应、选项)
。检查文档。您可以使用
集合
参数选择特定的
模型
。检查以下代码:

var Users = Backbone.Collection.extend ({
    url : 'http://backbonejs-beginner.herokuapp.com/users'
});

var users = new Users();
users.fetch({
    success: function (collection, response, options) {
        //Will log JSON objects of all User objects
        console.log(collection.toJSON());
        //You can get a Model using 'id'
        var user = collection.get("hqesig1ea1br2k6horay");
        // Will log User Model for id "hqesig1ea1br2k6horay"
        console.log(user);
        //You can then fetch Model attributes this way
        console.log("ID: ", user.get('id'));
        console.log("First name: ", user.get('firstname'));
        console.log("Lastname : ", user.get('lastname'));
    }
});

A供您参考。

当我尝试执行console.log(用户[0].get(“id”))时,我得到了“未捕获类型错误:无法调用未定义的方法'get'”;很抱歉,我编辑了我的答案,我忘记了模型数组。我链接的内容现在可以使用了。
var Users = Backbone.Collection.extend ({
    url : 'http://backbonejs-beginner.herokuapp.com/users'
});

var users = new Users();
users.fetch({
    success: function (collection, response, options) {
        //Will log JSON objects of all User objects
        console.log(collection.toJSON());
        //You can get a Model using 'id'
        var user = collection.get("hqesig1ea1br2k6horay");
        // Will log User Model for id "hqesig1ea1br2k6horay"
        console.log(user);
        //You can then fetch Model attributes this way
        console.log("ID: ", user.get('id'));
        console.log("First name: ", user.get('firstname'));
        console.log("Lastname : ", user.get('lastname'));
    }
});