2012-02-10 7 views
4

私はクラス図はこのように見ている:私はそれらのRelationalModelを作成バックボーン・リレーショナルとのUML関係の表現方法

{ "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" } 
           }, 
           ] 
       }] 
} 

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

編集:

データは、その

データのようになります。

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); 

すべてが(フェッチが、多くの警告を取得ファイアフォックス、c hrome)次のようになります。

警告:

Relation=%o; no model, key or relatedModel (%o, %o, %o) .... 
  1. この警告の意味は何ですか?
  2. これを表す権利は、バックボーン関係のクラス関係ではありませんか?

if not?

どうすればこのモデルをバックボーンモデルとして表すことができますか?

+0

データはどのように見えますか? –

+0

こんにちはMr Smith!私は私のポストを編集し、いくつかのデータを追加!ありがとうございました! – trouble

答えて

0

モデルAではあなたはしかし、モデルBにリンクし

key: 'modelb'

を定義している、キーが(ドキュメントに基づいて)「という文字列が。relatedModelに属性名を参照します」でなければなりません。 Modelbというフィールドを見たりモデル化することはできません

+0

これは質問ですか、それとも答えですか? – trouble

+0

質問にフルモデルコードを入力した場合は、これが答えです。キーで参照するには、 "modelb"という名前のフィールドが必要です。 modelbが存在しない場合、ルックアップはどのように機能しますか?多分キーは単に「id」でなければなりません。 – schacki

+0

ビジュアルレスポンスで投稿を編集できますか(例)?ありがとうございました! – trouble

関連する問題