2016-06-06 75 views
0

我正在通過後端向第3個API發出請求。 api將一系列事件返回到我的前端,我無法將它存儲在ember DS中。我的API請求的路由是多事的,我嘗試創建事件的路由/模型是事件事件。我呼籲:get'store'在我的適配器中未定義

this.get('store').createRecord('eventful-event', concert)

在我多事適配器和獲取「商店」是不確定的。這是我爲我忙碌的航線代碼:

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在引發錯誤。我是新來的燼,所以我道歉,如果我忽略簡單的東西,或者如果我的方法是不正確的。任何意見或幫助將不勝感激。

只要放一個調試器就可以了。'這'在適配器中是未定義的。

回答

2

我相信背景是你的問題。嘗試使用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); 
     }); 
    }); 
    } 
+0

哈哈,謝謝!這工作。被困了很長時間。 – Atache