如何用主干关系表示UML关系?

问题描述:

我有类图看起来像这样:如何用主干关系表示UML关系?

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:

MODELA:

ModelA = Backbone.RelationalModel.extend({ 

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

ModelB:

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,c hrome)看起来是这样的:

警告:

Relation=%o; no model, key or relatedModel (%o, %o, %o) .... 
  1. 这是什么警告的含义是什么?
  2. 这是代表与骨干关系的类关系的权利是不是?

如果不是?

我该如何将其表示为Backbone ModelRelational?

+0

数据是什么样的? – 2012-02-10 15:53:03

+0

史密斯先生!我编辑我的帖子并添加一些数据!谢谢! – trouble 2012-02-11 10:36:52

在模型A要定义

key: 'modelb'

可链接到模型B.然而,关键应该是“字符串。引用在relatedModel属性名称”(基于文档)。而且我看不到和model model modelb

+0

这是一个问题或答案? – trouble 2012-08-15 08:40:03

+0

如果您在问题中提供了完整的模型代码,那么这就是答案:如果您想要使用键引用它,您确实需要一个名称为“modelb”的字段。如果modelb不存在,查找应该如何工作?也许关键应该是'id'。 – schacki 2012-08-15 08:51:47

+0

你可以编辑你的文章与视觉回应(例子)?谢谢! – trouble 2012-08-15 08:55:22