У меня есть два файла, например,
работник-ставка-controller.ts:
private load() {
return this.entityService
.load(this.$scope.projectRevisionUid)
.then(resp => {
localStorage.removeItem('employeerates');
this.$scope.employeeRates = resp.employeeRates;
return this.refreshCostRate(...resp.employeeRates)
.then(() =>
localStorage.setItem(
'employeerates',
JSON.stringify(this.$scope.employeeRates)
)
)
.then(() => this.refreshBillRate(...resp.employeeRates))
.then(() => resp.employeeRates.forEach(erm => this.calculate(erm)))
.then(() => DatepickerUtil.reinitializeDatepickers(this.$scope));
})
}
И в другом файле
getEmployeeRates.ts:
const employeerates = JSON.parse(
localStorage.getItem('employeerates')
);
if (employeerates && employeerates.length != null) {
employeerates.forEach((element: any) => {
if (
this.employee.getUid() === element.user.personUid &&
element.internalRate
) {
this.cost_rate_uom = element.internalRate * this.uom_factor;
this.cost_rate_per_hour =
this.cost_rate_uom / this.uom_factor;
this.cost_rate.setValue(this.ap4_cost_rate_per_hour);
}
});
}
Здесь вы можете видеть,
В первом файле TS,
localStorage.setItem('employeerates',JSON.stringify(this.$scope.employeeRates))
А во втором файле ts, получающем данные,
const employeerates = JSON.parse(localStorage.getItem('employeerates'));
Я не могу найти никаких проблем, если добавляю очень мало сотрудников, но когда я продолжаю добавлять сотрудников, что означает их сохранение в localstorage
, я получаю ошибку в определенный момент времени, когда размер данных был огромным и блокирует весь процесс.
Ошибка была,
QuotaExceededError: Не удалось выполнить 'setItem' для 'Storage': настройка
значение «сотрудников» превысило квоту.
Так что я хотел бы получить хорошее решение для передачи любых больших данных из одного файла в другой без использования localalstorage ..
Поскольку приложение выполнено в комбинации Angularjs и Typescript , я не смог найти правильное решение, так как я новичок в этом сценарии.
Edit:
Вместо первого файла TS я также могу получить значение в этом файле.
employeeratemodel.ts:
export class EmployeeRateModel {
public uid: string;
.
.
.
public internalRate: number; // Getting the value here
}
Как извлечь это значение из второго файла ts getEmployeeRates.ts:
..
Моя попытка:
import { EmployeeRateModel } from '../component/employee-rates/model/employee-rate.model';
constructor() {
const data = new EmployeeRateModel();
console.log(data) // {} // Gives empty object.. I need to fetch the internalRate from it..
}
Здесь, если я получу данные, мне будет легче получить internalRate
, который необходим для расчета, но, поскольку все возвращается пустым, это также не получается для меня ..
Пожалуйста, помогите мне исправить это соответствующим образом, застрял надолго ..