迭代Backbone中的模型属性?

时间:2015-05-22 00:50:05

标签: javascript json backbone.js

我有一个请求下面的JSON文件的模型:

[
{
    "ModifiedOn": "2015-04-08 11:17:28.0",
    "BuildingCode": "AU1010A1",
    "BuildingName": "REGUS - BRISBANE",
    "ActionRequired": "A"
},
{
    "ModifiedOn": "2015-04-08 11:17:28.0",
    "BuildingCode": "BR1044A1",
    "BuildingName": "RIO SUL - RIO DE JANEIRO",
    "ActionRequired": "A"
}]

在控制台中我可以看到像这样的属性

enter image description here

然而,当我尝试访问这样的模型属性时,我得到了未定义。

console.log(this.model.attributes.length);

我尝试解析为JSON但失败了。

我是否必须访问我的模型所具有的属性数组中的每个单独对象?

3 个答案:

答案 0 :(得分:1)

它是一个对象,因此您可以使用Object.keys(this.model.attributes)

答案 1 :(得分:1)

你可以使用类似这样的东西。

//for array[object{}, object{},...]
for(var i = 0; i <data.length;i++)
{
    foreach(var key in data[i])
    {
        //print out the attributes for data[i].
        console.log(key);
        //print out the attribute values.
        console.log(data[i][key]);
    }
}

[编辑]

//for object{object{}, object{},...}
foreach(var childObject in data)
{
    foreach(var key in childObject)
    {
        //print out the attributes for childObject.
        console.log(key);
        //print out the attribute values.
        console.log(childObject[key]);
    }
}

希望它有所帮助。

答案 2 :(得分:0)

您可以使用toJSON()for in循环来迭代模型属性

var attrs = this.model.toJSON();
for(key in attrs){
   console.log((key + " -> " + attrs[key]);)
}