我不确定为什么,但是我在findAll调用中收到了这个奇怪的类:

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


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

服务器中的EventModel:

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
  }
});


我的应用程式:

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


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

  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');
    }
  });


我的活动模型:

  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')
    }
  });


和JSON(不完整):

{
  events: [{
    _id: "55f660bdd80a0fd2e298f333",
    attributes: {
      description: "test",
      name: "name",
      is_active: false
    },
    type: "event"
  }, {
    _id: "560f5da1e4b056e1540d1016",
    attributes: {
      description: "test",
      name: "name",
      is_active: false
    },
    type: "event"
  }]
}


http://codepen.io/anon/pen/yYMzQo中的所有代码

拜托,我非常沮丧,我被困了至少5天,有人给了我一个光!!

最佳答案

创建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}}

关于javascript - findAll事件在ember数据中返回奇怪的类,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32924450/

10-12 13:42
查看更多