findAll Events返回ember-data中的奇怪类

时间:2015-10-03 15:46:34

标签: javascript ember.js ember-data

我不知道为什么,但我在findAll电话中收到了这个奇怪的课程:

git add .

这是我的所有代码,从服务器到客户端:

服务器中的EventModel:

__ember1443850972614: "ember455"
__ember_meta__: Object
__nextSuper: undefined
content: (...)
get content: GETTER_FUNCTION()
set content: SETTER_FUNCTION(value)
isFulfilled: true
__proto__: Class

我的应用:

var EventSchema = mongoose.model('EventSchema', {
  type: {
    type: String,
    "default": 'event'
  },
  attributes: {
    date: Date,
    description: String,
    hiw: Object,
    hour: Date,
    meeting: String,
    men: Number,
    name: String,
    title: String,
    women: Number,
    created_at: Date,
    is_active: {
      type: Boolean,
      "default": false
    },
    updated_at: Date
  }
});

我的REST适配器和序列化器:

  window.SiteApp = Ember.Application.create({
    LOG_TRANSITIONS: true
  });

我的路线:

  SiteApp.ApplicationSerializer = DS.RESTSerializer.extend({
    primaryKey: '_id'
  });

  SiteApp.ApplicationAdapter = DS.RESTAdapter.extend({
    namespace: 'api'
  });

我的活动路线:

SiteApp.Router.map(function() {
    this.route('events', {
      path: '/'
    });
  });

我的活动模型:

 SiteApp.EventsRoute = Ember.Route.extend({
    model: function(params) {
      return this.store.findAll('events');
    }
  });

JSON(不完整):

  SiteApp.Event = DS.Model.extend({
    type: DS.attr('string'),

    attributes: {
      date: DS.attr('date'),
      description: DS.attr('string'),
      hiw: DS.attr(),
      hour: DS.attr('date'),
      meeting: DS.attr('string'),
      men: DS.attr('number'),
      name: DS.attr('string'),
      title: DS.attr('string'),
      women: DS.attr('number'),
      created_at: DS.attr('date'),
      is_active: DS.attr('boolean'),
      updated_at: DS.attr('date')
    }
  });

以下所有代码:http://codepen.io/anon/pen/yYMzQo

拜托,我很沮丧,我至少坚持了5天,有人给我一个灯!!

1 个答案:

答案 0 :(得分:1)

创建

DS.store来存储数据,并使用它进行操作。它从服务器或其他存储加载数据,具体取决于适配器,创建DS.Model的实例并将它们存储在内存中。由于可以使用不同类型的存储,因此无法返回JSON。它返回一个包含模型实例的对象。您需要使用Ember.Array的方法来获取数据。这是一个小例子:

 SiteApp.EventsRoute = Ember.Route.extend({
    model: function(params) {
      return this.store.findAll('events').then(function(events){
        events.forEach(function (item, index, enumerable) {
          console.log(item.get('attributes.title'));
        });
      });
    }
  });

如果您只想向用户显示数据,只需在模板中使用{{#each}}块:

{{#each model as |event|}}
  <div>{{event.attributes.title}}</div>
{{/each}}