我不确定为什么,但是我在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/