基于JSON的 Backbone 模型和集合的结构

gywdnpxw  于 2022-11-10  发布在  其他
关注(0)|答案(1)|浏览(146)

我有一个网络应用程序,它通过食物跟踪每天的营养消耗,并在一个整洁的时间线上呈现它们。
我是Backbone的新手,我正在尝试构建我的模型和集合。我如何将以下JSON建模到Backbone模型/集合中?
它应该是一个 * 食品 * 收集在一个 * 天 * 模型?

{
      response: [
        { // a random day
          date: '1/1/2011',
          totalCalories: 1000,
          totalCarbs: 100,
          totalProtein: 60,
          totalFats: 30,
          foods: [
            { // a food consumed in this day
              datetime: '1/1/2011 17:30',
              calories: 500,
              proteins: 30,
              carbs: 50,
              fats: 15,
              img: 'link_to_img'
            },
            {
              datetime: '1/1/2011 19:30',
              calories: 500,
              proteins: 30,
              carbs: 50,
              fats: 15,
              img: 'link_to_img'
            }
          ]
        },
        { // another day
          date: '3/1/2011',
          totalCalories: 1000,
          totalCarbs: 100,
          totalProtein: 60,
          totalFats: 30,
          foods: [
            {
              datetime: '3/1/2011 17:30',
              calories: 500,
              proteins: 30,
              carbs: 50,
              fats: 15,
              img: 'link_to_img'
            },
            {
              datetime: '3/1/2011 19:30',
              calories: 500,
              proteins: 30,
              carbs: 50,
              fats: 15,
              img: 'link_to_img'
            }
          ]
        }
      ]
}
jv4diomz

jv4diomz1#

如果您有JSON,则可以创建集合和模型
正在创建模型

var myModel = Backbone.Model.extend({});

正在创建集合

var myCollection = Backbone.Collection.extend({
  model: myModel
});

var ourCollection = new myCollection(yourJSON);

在您的示例中,我将创建2个集合(1个嵌套在模型中)CollectionOfDays-〉ModelOfDay-〉CollectionOfFoods(在模型内部)

var randomDay = Backbone.Model.extend({});
var randomDayCollection = Backbone.Collection.extend({
  model: randomDay
});

var collection = new randomDayCollection(yourJSON);

集合中模型具有以下属性:

date: '1/1/2011',
totalCalories: 1000,
totalCarbs: 100,
totalProtein: 60,
totalFats: 30,
foods: [Array] -food consumed in day

之后,您可以创建其他模型到一个食品和食品集合,并覆盖您的食品。

相关问题