javascript - Ember createRecord 未创建关系

标签 javascript django ember.js ember-data django-rest-framework

截至本文,我正在使用最新的 ember 和 ember-data。我的设置包括 django、django-rest-framework。我的适配器是 ember-data-django-rest-adapter。

我有这些模型

App.Game = DS.Model.extend({
    name:           DS.attr('string'),
    thumbnail:      DS.attr('string'),
    images:         DS.hasMany('image', {async: true}),
    spritesheets:   DS.hasMany('spritesheet', {async: true})
});

App.Image = DS.Model.extend({
    name:           DS.attr('string'),
    absolute_url:   DS.attr('string'),
    game:           DS.belongsTo('game', {async: true}),
    spritesheet:    DS.belongsTo('spritesheet', {async: true})
});

App.Spritesheet = DS.Model.extend({
    name:           DS.attr('string'),
    columns:        DS.attr('number'),
    rows:           DS.attr('number'),
    cell_width:     DS.attr('number'),
    cell_height:    DS.attr('number'),
    game:           DS.belongsTo('game', {async: true}),
    image:          DS.belongsTo('image', {async: true}),
    animations:     DS.hasMany('animation', {async: true})
});

App.Animation = DS.Model.extend({
    name:           DS.attr('string'),
    spritesheet:    DS.belongsTo('spritesheet', {async: true}),
});

这条路线:

App.AnimationsRoute = Ember.Route.extend({
    model: function(params){
        var store = this.store;
        var image = this.modelFor('image');
        var game = this.modelFor('game');
        var spritesheet = image.get('spritesheet');
        console.log(game)
        if (spritesheet === null) {
            spritesheet = store.createRecord('spritesheet',{
                name: 'test',
                game: game,
                image: image
            });
            console.log(spritesheet.toJSON())

        }
        return spritesheet.get('animations');
    }
});

显然有更多的代码,但这就是导致我出现问题的部分。其余部分工作正常。游戏模型加载正常,如图所示。

我的问题是“图像”和“游戏”属性设置为“未定义”。 这是控制台中的 json 输出:

Object {name: "test", columns: null, rows: null, cell_width: null, cell_height: null…}
{
    cell_height: null,
    cell_width: null,
    columns: null,
    game: undefined,
    image: undefined,
    name: "test",
    rows: null
}

多年来我一直对此感到疯狂。有人有任何线索吗? 另外,我知道我可能不应该在 route 进行创建,但我只是想让它暂时工作

最佳答案

belongsTo async 有 2 个 Unresolved 问题,目前不允许分配。

https://github.com/emberjs/data/pull/1535

https://github.com/emberjs/data/issues/1542

关于javascript - Ember createRecord 未创建关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20927168/

相关文章:

javascript - 调整浏览器大小时 html 页面会变得疯狂

python - Django 保存随机行为

javascript - 如何删除emberjs中的键?

javascript - 仅接受数字和短划线字符的输入文本字段

javascript - VueJS 从方法访问模型

javascript - 使用表格 API 和 XMLHttpRequest 将请求正文发送到 google 表格

python - 调试缓慢的 Django 管理 View

python - Django-如何映射用户之间发送的消息

ember.js - 为什么我的 Ember.Router 给出这个 TypeError?

javascript - 在 Ember v1.12 组件中绑定(bind) HTML 输入值