1

質問 1ember-1.0.0-rc.1+ ember.data-11でネストされたモデルを作成するという私の概念の何が問題になっていますか?

質問 2varline = App.Line.find()の場合Lineを取得する必要があります。AndonまたはShiftをオブジェクトとして取得し、行にネストするにはどうすればよいですか?それともアンドンの色だけですか?

ここに私のjsFiddle

App.Line = DS.Model.extend({
    name: DS.attr('string'),
    shifts: DS.hasMany('App.Shift'),
});

App.Shift = DS.Model.extend({
    name: DS.attr('string'),    
    // shift 1 <-> 1 shifts
    line: DS.belongsTo('App.Line'),
    //  one-to-one relationship between Shift and Andon
    andon: DS.belongsTo('App.Andon')
 });

 App.Andon = DS.Model.extend({
    //  one-to-one relationship between Shift and Andon 
    shift: DS.belongsTo('App.Shift')
 })

コントローラー

 App.LinesController = Ember.ArrayController.extend({
     content: [],
 });

 App.linesController = Ember.ArrayController.create({
    content: [],
    init: function(){

    var self = this;
    self.pushObject(

        App.Line.createRecord(
                        {
                        ...
                        shifts: [ 
                          App.Shift.createRecord(
                          {
                            andon:  App.Andon.createRecord({...})
                          }),
                          App.Shift.createRecord(
                          {
                            andon: App.Andon.createRecord({...})
                          }),

                        ]   
                    },
                   ],
                }
            ),      
        );  
    }, 
 });

どうもありがとう!

4

1 に答える 1

0

質問2について:

すべてのbelongsToに外部キーを追加する必要があると思います。つまり、Shiftのline_idとandon_id、Andonのshift_idです。次に、関連付けを埋め込んだりサイドロードしたりできるシリアライザーを作成する必要があります。残念ながら、私はレールからのactiveModelシリアライザーに精通しているだけであり、おそらくあなたのケースでは使用できませんが、この質問への回答の例が役立つかもしれません。

于 2013-03-22T14:01:32.047 に答える