get 'store' 在我的适配器中未定义
get 'store' is undefined in my adapter
我正在通过我的后端向第三个 api 发出请求。 api returns 一系列事件到我的前端,我无法将其存储在 ember DS 中。我的 API 请求的路线是多事的,我试图为其创建事件的 route/model 是多事的事件。我叫:
this.get('store').createRecord('eventful-event', concert)
在我多事的适配器中并得到 'store' 是未定义的。这是我多事路线的代码:
import Ember from 'ember';
export default Ember.Route.extend({
model () {
return this.get('store');
},
data : {},
ajax: Ember.inject.service(),
actions: {
searchForEvents (data) {
let eventful = this.get('store').createRecord('eventful', data);
return eventful.save();
// .then(() => this.transitionTo('search-results'));
// return this.get('store').findAll('eventful');
// let something = this.get('store').findAll('eventful');
// console.log('something:', something);
// return eventful.save();
}
}
});
和我多事的适配器:
import ApplicationAdapter from 'ga-wdi-boston.event-bookmarker/application/adapter';
import Ember from 'ember';
export default ApplicationAdapter.extend({
ajax: Ember.inject.service(),
createRecord (store, type, record) {
let serialized = this.serialize(record, { includeId: true});
let data = { serialized };
let dataToSend = {'keywords': record.record.keywords, 'location': record.record.location };
return this.get('ajax').request('/eventful', {
method: 'POST',
data: dataToSend,
}).then((events) => {
events['eventful-event'].forEach(function(concert){
this.get('store').createRecord('eventful-event', concert);
});
});
}
});
这个forEach就是报错的地方。我是 ember 的新手,所以如果我忽略了一些简单的事情,或者如果我的方法不正确,我深表歉意。任何建议或帮助将不胜感激。
只需放入调试器即可。'This'适配器中未定义。
我认为上下文是您的问题。尝试在局部函数中使用 store
(适配器方法的参数)而不是 this.get('store')
:
createRecord (store, type, record) {
let serialized = this.serialize(record, { includeId: true});
let data = { serialized };
let dataToSend = {'keywords': record.record.keywords, 'location': record.record.location };
return this.get('ajax').request('/eventful', {
method: 'POST',
data: dataToSend,
}).then((events) => {
events['eventful-event'].forEach(function(concert){
store.createRecord('eventful-event', concert);
});
});
}
我正在通过我的后端向第三个 api 发出请求。 api returns 一系列事件到我的前端,我无法将其存储在 ember DS 中。我的 API 请求的路线是多事的,我试图为其创建事件的 route/model 是多事的事件。我叫:
this.get('store').createRecord('eventful-event', concert)
在我多事的适配器中并得到 'store' 是未定义的。这是我多事路线的代码:
import Ember from 'ember';
export default Ember.Route.extend({
model () {
return this.get('store');
},
data : {},
ajax: Ember.inject.service(),
actions: {
searchForEvents (data) {
let eventful = this.get('store').createRecord('eventful', data);
return eventful.save();
// .then(() => this.transitionTo('search-results'));
// return this.get('store').findAll('eventful');
// let something = this.get('store').findAll('eventful');
// console.log('something:', something);
// return eventful.save();
}
}
});
和我多事的适配器:
import ApplicationAdapter from 'ga-wdi-boston.event-bookmarker/application/adapter';
import Ember from 'ember';
export default ApplicationAdapter.extend({
ajax: Ember.inject.service(),
createRecord (store, type, record) {
let serialized = this.serialize(record, { includeId: true});
let data = { serialized };
let dataToSend = {'keywords': record.record.keywords, 'location': record.record.location };
return this.get('ajax').request('/eventful', {
method: 'POST',
data: dataToSend,
}).then((events) => {
events['eventful-event'].forEach(function(concert){
this.get('store').createRecord('eventful-event', concert);
});
});
}
});
这个forEach就是报错的地方。我是 ember 的新手,所以如果我忽略了一些简单的事情,或者如果我的方法不正确,我深表歉意。任何建议或帮助将不胜感激。
只需放入调试器即可。'This'适配器中未定义。
我认为上下文是您的问题。尝试在局部函数中使用 store
(适配器方法的参数)而不是 this.get('store')
:
createRecord (store, type, record) {
let serialized = this.serialize(record, { includeId: true});
let data = { serialized };
let dataToSend = {'keywords': record.record.keywords, 'location': record.record.location };
return this.get('ajax').request('/eventful', {
method: 'POST',
data: dataToSend,
}).then((events) => {
events['eventful-event'].forEach(function(concert){
store.createRecord('eventful-event', concert);
});
});
}