gpt4 book ai didi

javascript - findAll 事件在 ember-data 中返回奇怪的类

转载 作者:行者123 更新时间:2023-12-03 08:45:13 25 4
gpt4 key购买 nike

我不知道为什么,但我在 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}}模板中的 block :

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

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

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com