I am trying to push the updated model back to store. i tried with couple of ways still getting failed.
Please help me to understand to push the model back to store without updating backend api.
here is my try:
import Ember from 'ember';
export default Ember.Route.extend({
model: function(params) {
if(this.store.hasRecordForId('card-list', params.id)){
return this.store.peekRecord('card-list', params.id );
}
},
actions:{
formValidateBeforeNext:function(){
var model = this.controllerFor(this.routeName).get('model');
var modelId = this.controllerFor(this.routeName).get('model').get("id");
var oneTimeFee = this.controllerFor(this.routeName).get('model').get("oneTimeFee");
var monthlyInstalmentAmount = this.controllerFor(this.routeName).get('model').get("monthlyInstalmentAmount");
var updatedModel = JSON.parse(JSON.stringify(model));
updatedModel.type="card-list";
updatedModel.id="13";
console.log( "model would be:-" , updatedModel );
//sending just a updated model fails
let itemModel = this.store.push({'card-list': model });
//after stringfy trying to update still fails
let itemModel = this.store.push({'data': updatedModel });
// this.store.pushObject(JSON.parse(JSON.stringify(model)));
console.log( "store data", this.store.peekRecord('card-list', modelId ) )
this.transitionTo('cs2i.balance.balanceReview', {id:modelId});
}
}
});
What is wrong here? what is the correct way to put back the mode with updates?
UPDATE:Error added
Expected an object in the 'data' property in a call to 'push' for undefined, but was instance
Error
pushmethod will expect the data in the expected format. for eg, if you are using the JSONAPI. the below is the expected one.You can convert json payload into the expected form by doing so,
If you are having raw JSON data, then you can try
pushPayload.Refer EmberData Model Maker to know expected result format.
Read ember guides models/pushing-records-into-the-store
Read push API doc
Read pushPayload doc -