Ember this.store.findRecord and setting it using controllerFor will not update the existing data


#1

0down votefavorite

I have a model which im using in a modal model is profile and its look like this.

model/profile.js

  id: DS.attr('string'),
  firstName: DS.attr('string'),
  lastName: DS.attr('string'),
  email: DS.attr('string'),
  job: DS.belongsTo('job'),

then im using the model in modal by passing through the parent route ( parent route is calling this.store.findRecord('profile', id );

sending the model to modal is works perfectly but when im trying to cancel from the modal i need to send api call again to fetch model data from api and re assign to the model by discarding all changes. i trying to do that in a function which is in the parent route ( child sending an action to parent to execute cancel) .

Action code in route of the parent

  cancelEdit( person ) {

      var profile = person.get( 'content' );

      console.log(  profile.get('id'));

      profile.set( 'uploadedAvatar', null );
      profile.set( 'file', null );


      var image = profile.get('cachedAvatar') ;
      var id = profile.get('id');

      console.log(person);


      this.store.findRecord( 'profile', id, {reload:true}).then( response => {
        console.log(response.get('job'))

        this.controllerFor( 'people/profile' ).set( 'person', response );


        profile.set( 'avatar', image );

        this.controllerFor( 'people/profile' ).set( 'animate', false );

        this.controllerFor( 'people/edit' ).set('isNewPosition',false);

        this.controllerFor( 'people/edit' ).set('imageCropper',false);
        this.controllerFor( 'people/edit' ).set('showImageCropper',false);
        this.controllerFor( 'people/edit' ).set('tmpImage',null);
        this.controllerFor( 'people/edit' ).set('tmpUploadedImage',null);
        this.controllerFor( 'people/edit' ).set('imageBlob',null);

        this.openModal( 'people/profile' );

      } )

    }

but the issue is it wont reset ( refresh or reassign the fresh data set )which is came through the api. the old changed data will be remain the same.

what did i miss here?