0

Backbone-relationalでBackboneを使用しています。私は2つのモデルを持っています、AppointmentそしてClient、ここで、Clientは多くを持つことができますAppointments。これが私のClientモデル定義です(CoffeeScriptで):

class Snip.Models.Client extends Backbone.RelationalModel
  paramRoot: 'client'

  relations: [
    type: Backbone.HasMany
    key: 'appointments'
    relatedModel: 'Snip.Models.Appointment'
    collectionType: 'Snip.Collections.AppointmentsCollection'
    reverseRelation:
      type: Backbone.HasOne
      key: 'client'
      includeInJSON: 'id'
  ]

  defaults:
    name: null
    phone: null
    email: null
    notes: null
    active: null

class Snip.Collections.ClientsCollection extends Backbone.Collection
  model: Snip.Models.Client
  url: '/clients'

そして、これが私のAppointmentモデル定義です:

class Snip.Models.Appointment extends Backbone.RelationalModel
  paramRoot: 'appointment'

  defaults:
    time_block_type_code: 'APPOINTMENT'
    start_time: null
    stylist: null
    salon: null
    client: Snip.Models.Client() # This doens't work

class Snip.Collections.AppointmentsCollection extends Backbone.Collection
  model: Snip.Models.Appointment
  url: '/appointments'

問題は次のとおりです。Client参照しているので、ファイルの前にファイルAppointmentを含める必要があります。そうすれば、参照するまでにクラスが存在します。ただし、参照あるので、キャッチ22のような状況です。どうしたらいいのかわからない。AppointmentClientSnip.Models.AppointmentAppointment Client

4

1 に答える 1

0

まず、Backbone-Relational を使用する場合は、逆の関係を初期化することを忘れないでください。

Snip.Models.Client.setup()

次に、キーのデフォルトではclient、新しいクライアント モデルの属性を指定する必要があります (バックボーン リレーショナルによって作成されます)。そして、空のハッシュを残すものがない場合:

client: {}
于 2012-07-09T14:33:15.350 に答える