Ember.js 重新加载后有许多对象消失

Ember.js 重新加载后有许多对象消失,ember.js,ember-data,Ember.js,Ember Data,我有两种型号,User和Project: App.Project = DS.Model.extend({ name: DS.attr('string'), url: DS.attr('string'), user: DS.belongsTo('user') }); App.User = DS.Model.extend({ name: DS.at

我有两种型号,
User
Project

App.Project = DS.Model.extend({
                name: DS.attr('string'),
                url: DS.attr('string'),
                user: DS.belongsTo('user')
            });

App.User = DS.Model.extend({
                name: DS.attr('string'),
                projects: DS.hasMany('project')
            });
我使用本地存储的余烬数据来存储用户和项目。我在
IndexController
中使用AJAX调用填充用户和项目:

'createUser' : function(){
                            var name = this.get('newUser');
                            if(!name){
                                return;
                            }

                            var that = this;

                            Ember.$.getJSON('<apiUrl>).then(function(data){
                                var user = that.store.createRecord('user', data);
                                user.save();
                                that.set('newUser', '');
                                Ember.$.getJSON(<apiUrl>/projects').then(function(data){
                                        var length = data.length;
                                        for(var i = 0; i < length; i++){
                                            data[i].id = data[i].name;
                                            data[i].user_id = data.id;
                                            var project = that.store.createRecord('project', data[i]);
                                            project.save();
                                            user.get('projects').addObject(project);
                                        }

                                        user.save();
                                });
                            });
                        },

        }
DS.JSONSerializer.reopen({
    serializeHasMany : function(record, json, relationship) {
        var key = relationship.key;

        var relationshipType = DS.RelationshipChange.determineRelationshipType(
                record.constructor, relationship);

        if (relationshipType === 'manyToNone'
                || relationshipType === 'manyToMany'
                || relationshipType === 'manyToOne') {
            json[key] = Ember.get(record, key).mapBy('id');
        }
    }
});
'createUser':函数(){
var name=this.get('newUser');
如果(!name){
回来
}
var=这个;
余烬$.getJSON('
{{else}
没有加载任何项目

{{/每个}}

我是否做了一些不正确的事情,导致项目无法重新加载?

我找到了答案。为了使其正常工作,我需要重新打开
JSONSerializer

'createUser' : function(){
                            var name = this.get('newUser');
                            if(!name){
                                return;
                            }

                            var that = this;

                            Ember.$.getJSON('<apiUrl>).then(function(data){
                                var user = that.store.createRecord('user', data);
                                user.save();
                                that.set('newUser', '');
                                Ember.$.getJSON(<apiUrl>/projects').then(function(data){
                                        var length = data.length;
                                        for(var i = 0; i < length; i++){
                                            data[i].id = data[i].name;
                                            data[i].user_id = data.id;
                                            var project = that.store.createRecord('project', data[i]);
                                            project.save();
                                            user.get('projects').addObject(project);
                                        }

                                        user.save();
                                });
                            });
                        },

        }
DS.JSONSerializer.reopen({
    serializeHasMany : function(record, json, relationship) {
        var key = relationship.key;

        var relationshipType = DS.RelationshipChange.determineRelationshipType(
                record.constructor, relationship);

        if (relationshipType === 'manyToNone'
                || relationshipType === 'manyToMany'
                || relationshipType === 'manyToOne') {
            json[key] = Ember.get(record, key).mapBy('id');
        }
    }
});