i making request 3rd api through backend. api returns array of events frontend , having trouble storing in ember ds. route api request eventful , route/model trying create event eventful-event. call:
this.get('store').createrecord('eventful-event', concert)
in eventful adapter , 'store' undefined. here code eventful route:
import ember '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 = this.get('store').findall('eventful'); // console.log('something:', something); // return eventful.save(); } } });
and eventful adapter:
import applicationadapter 'ga-wdi-boston.event-bookmarker/application/adapter'; import ember '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); }); }); } });
this foreach error thrown. i'm new ember apologize if overlooking simple, or if approach not correct. advice or appreciated.
just put debugger in. 'this' in adapter undefined.
i believe context problem. try using store
(argument of adapter method) instead of this.get('store')
inside local function:
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); }); }); }