1

我想清除 ngOnDestroy 上的数据。我从服务中获取这些静态数据。当前的情况是我使用相同的组件进行添加编辑,我只想在用户完成编辑后清除临时静态数据。

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....
  }
4

1 回答 1

0

您只是在使参考无效。作为一种更好的方法,您可以通过在服务中公开方法来做到这一点,如下所示

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

并从组件调用此方法

 ngOnDestroy() {
    this.defaultData.setLeadData('leads', null);
  }
于 2020-04-07T09:50:17.050 回答