【问题标题】:How to represent UML Relations with Backbone-Relational?如何用 Backbone-Relational 表示 UML 关系?
【发布时间】:2012-03-02 19:06:12
【问题描述】:

我的类图看起来像这样:

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'
    }
  }] });

模型C:

ModelC = Backbone.RelationalModel.extend({

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

模型D:

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-relational 表示这个类关系的权利,不是吗?

如果没有?

如何将其表示为 Backbone ModelRelational?

【问题讨论】:

  • 史密斯先生您好!我编辑了我的帖子并添加了一些数据!谢谢!

标签: backbone.js backbone-relational


【解决方案1】:

在模型 A 中定义

key: 'modelb'

链接到模型 B。但是,键应该是“字符串。引用相关模型上的属性名称”(基于文档)。而且我看不到名为 modelb 的模型字段

【讨论】:

  • 这是一个问题还是一个答案?
  • 如果您在问题中提供了完整的模型代码,那么这就是答案:如果您想用键引用它,您确实需要一个名称为“modelb”的字段。如果 modelb 不存在,查找应该如何工作?也许 key 应该只是 'id'。
  • 你能用视觉响应编辑你的帖子吗(示例)?谢谢!
猜你喜欢
  • 1970-01-01
  • 2012-07-25
  • 2012-05-27
  • 2013-01-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多