Как представить UML-отношения с Backbone-Relational? - PullRequest
4 голосов
/ 10 февраля 2012

Диаграмма классов выглядит следующим образом:

ModelA 1------* ModelB 1------* ModelC 1------* ModelD

Редактировать:

Данные выглядят так

Данные:

{   "Titel" : "ModelA",
    "ModelA" : [
        {
          "Titel" : "ModelB1",
          "ModelB1" : [
                              {
              "Titel" : "ModelC1",
                              "ModelC1":[
                                { "Titel" : "ModelD1"   },
                                { "Titel" : "ModelD2"   },
                                { "Titel" : "ModelD3"   }
                              },
                              {
              "Titel" : "ModelC2",
                              "ModelC2":[
                                { "Titel" : "ModelD21"   },
                                { "Titel" : "ModelD22"   },
                                { "Titel" : "ModelD23"   }
                              },
                              ]
                 },
                 {
          "Titel" : "ModelB2",
          "ModelB2" : [
                              {
              "Titel" : "ModelC1",
                              "ModelC1":[
                                { "Titel" : "ModelD1"   },
                                { "Titel" : "ModelD2"   },
                                { "Titel" : "ModelD3"   }
                              },
                              {
              "Titel" : "ModelC2",
                              "ModelC2":[
                                { "Titel" : "ModelD21"   },
                                { "Titel" : "ModelD22"   },
                                { "Titel" : "ModelD23"   }
                              },
                              ]
                 }]
 }

Я создаю эти RelationalModel:

Модель A:

ModelA = Backbone.RelationalModel.extend({

  relations:[{
    type: Backbone.HasMany,
    key: 'modelb',
    relatedModel: 'ModelB',
    collectionType: 'ModelBCollection',
    reverseRelation:{
      key: 'belong To',
      includeInJSON: 'id'
    }
  }] });

Модель B:

ModelB = Backbone.RelationalModel.extend({

  relations:[{
    type: Backbone.HasMany,
    key: 'modelc',
    relatedModel: 'ModelC',
    collectionType: 'ModelCCollection',
    reverseRelation:{
      key: 'belong To',
      includeInJSON: 'id'
    }
  }] });

ModelC:

ModelC = Backbone.RelationalModel.extend({

  relations:[{
    type: Backbone.HasMany,
    key: 'modeld',
    relatedModel: 'ModelD',
    collectionType: 'ModelDCollection',
    reverseRelation:{
      key: 'belong To',
      includeInJSON: 'id'
    }
  }] });

ModelD:

ModelD = Backbone.Model.extend({ });

Коллекции:

 ModelACollection = Backbone.Collection.extend({ model: ModelA });
 ModelBCollection = Backbone.Collection.extend({ model: ModelB });
 ModelCCollection = Backbone.Collection.extend({ model: ModelC });
 ModelDCollection = Backbone.Collection.extend({ model: ModelD });

и я делаю это в маршрутизаторе:

Маршрутизатор:

var obja = new ModelACollection(data);
var objb = new ModelBCollection(data.objb);
var objc = new ModelCCollection(data.objc);
var objd = new ModelDCollection(data.objd);

все получаются, но со многими предупреждениями (firefox, chrome) выглядит следующим образом:

Предупреждение:

Relation=%o; no model, key or relatedModel (%o, %o, %o) .... 
  1. Что означает это предупреждение?
  2. Это право представлятьЭто классовое отношение с Backbone-реляционным не является?

, если нет?

Как я могу представить это как Backbone ModelRelational?

1 Ответ

0 голосов
/ 13 августа 2012

В модели A вы определяете

key: 'modelb'

, который ссылается на модель B. Однако ключ должен быть «строкой. Ссылка на имя атрибута на relatedModel» (на основедокументы).И я не могу увидеть и модель поля под названием modelb

...