Очистить данные о состоянии c на ngOnDestroy после получения данных из сервиса - PullRequest
1 голос
/ 07 апреля 2020

Я хочу очистить данные от ngOnDestroy. Я получаю эти данные c из службы. В текущем сценарии я использую тот же компонент для надстройки и редактирования, и я просто хочу очистить временные данные stati c, как только пользователь завершит редактирование.

export class LeadsDefaultDataService {

tempData;

private leadsDefaults = {
leads: {
  data: [
    {
      type: 'page_title',
      data: {
        title: 'Enter data',
      }
    },
    {
      type: 'page_layout',
      data: {
        backgroundColor: '#FFFFFF'
      }
    }
}
};


/**
 * Constructor
 */
 constructor(
 ) {}

 /**
  *  Function used to return the default data of qrCategory
  * @param category: Name of the category
  */
  getLeadsDefaultData(category: string) {
   return this.leadsDefaults[category].data;
  }
}

В компоненте:

constructor(
  private defaultData: LeadsDefaultDataService,
 ) {
}



   // For getting the data
   this.leadsData =  this.defaultData.getLeadsDefaultData('leads');


  // Reset the leadsData.
  ngOnDestroy() {
   this.leadsData = null; // not working....
  }

1 Ответ

0 голосов
/ 07 апреля 2020

Вы просто обнулите ссылку. Как лучше, вы можете сделать это, выставив метод в сервисе, как показано ниже

export class LeadsDefaultDataService {
 .......
  setLeadData(category: string, value: any){
    this.leadsDefaults[category].data = value;
  }
}

, и вызвать этот метод из компонента

 ngOnDestroy() {
    this.defaultData.setLeadData('leads', null);
  }
...