Ember数据不存储ID

时间:2014-04-03 14:35:25

标签: mongodb ember.js ember-data

我正在开发一个网站,使用nodejs作为服务器端,emberjs作为客户端,mongodb作为数据库。我有一个页面,其中创建并保存用户配置文件但数据的ID存储为未定义,除非我刷新。有没有办法解决这个问题?

1 个答案:

答案 0 :(得分:0)

我必须看到具体的代码才能回答这个问题,但我怀疑你是不是在等待来自服务器的响应,或者你没有在模型中传递你转换到新的路线。当Ember-data从服务器获得响应时,它会自动更新。

一般流程应该是这样的:

  1. 将您的发布请求发送到服务器。
  2. 服务器在Mongodb中创建用户,当它返回该对象时,它会将其发送回客户端。
  3. 在客户端上,您等待用户从服务器返回,并将模型传递给transitionTo助手。
  4. 以下是Ember方面的一个例子:

    App.UserCreateController = Ember.ObjectController.extend({
      actions: {
        createUser: function() {
          var self = this;
    
          this.get('model')
            .save()
            .then(function() {
              self.transitionToRoute('profile', self.get('model'));
            }, function() {
              alert('User not successfully saved');
          });
        }
      }
    });
    

    另一个可能的问题是您没有按照Ember数据的预期发回数据。即您的有效负载应如下所示:

    {
        user: {
            _id: 'lkj234l23jlk5j4l32j5lk34',
            name: 'Jon Snow'
        }
    }
    

    你应该让Ember知道它应该使用_id代替:

    App.ApplicationSerializer = DS.RESTSerializer.extend({
      primaryKey: "_id"
    });
    

    如果这不是您的问题,请发布一些代码或提供更多详细信息。