骨干。获取模型(JSON问题)

时间:2014-07-04 07:51:22

标签: backbone.js

我试图以一种很好的方式获取这个模型但是并没有真正让它按照我想要的方式工作。 模型每秒被setInterval();获取。我这样做是因为有这个后端系统能够改变模型所持有的json。问题是我不知道如何抓住所有的json。

现在我只能访问" 0"(问题和ID)并在模型上设置它。我希望能够访问所有JSON并在模型上设置。我该如何解析?

我的json看起来像这样:

{
"0": [
    {
        "question": "lorem ispum",
        "id": "1"
    }
],
"1": [
    {
        "id": "1",
        "alternative": "lorem ispum",
        "percent": "14.0000",
        "total": "7"
    },
    {
        "id": "2",
        "alternative": "lorem ispum",
        "percent": "14.0000",
        "total": "7"
    },
    {
        "id": "3",
        "alternative": "lorem ispum",
        "percent": "60.0000",
        "total": "30"
    },
    {
        "id": "4",
        "alternative": "lorem ispum",
        "percent": "12.0000",
        "total": "6"
    }
]

}

这是我的模特

QuestionModel = Backbone.Model.extend({ 
id: "",
url: function() {
    return "api/?action=getQuestionData&question_id="+this.id;  
},

parse: function (response) {
    return response[0][0];
}

});

1 个答案:

答案 0 :(得分:0)

Backbone不支持开箱即用的嵌套数据。我会做以下事情:

QuestionModel = Backbone.Model.extend({ 
    id: "",
    url: function() {
        return "api/?action=getQuestionData&question_id="+this.id;  
    },

    parse: function (response) {
        return { question: response["0"][0], answers:  response["1"] };
    }
});

然后,您可以访问questionModel.get('question').id等属性以及questionModel.get('answers')[0].percent

等答案