1

问题 1 我在 ember-1.0.0-rc.1 + ember.data-11 中创建嵌套模型的概念有什么问题?

问题 2 使用 var line = App.Line.find() 我应该得到这条线。如何获得嵌套在一行中的 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,然后您需要创建一些可以嵌入/旁加载关联的序列化程序。不幸的是,我只熟悉 rails 中的 activeModel 序列化程序,在您的情况下可能无法使用,但也许这个问题的答案中的示例会对您有所帮助。

于 2013-03-22T14:01:32.047 回答