У меня есть страница, на которой у меня есть 3 поля ввода и сетка с кнопкой добавления для добавления данных в сетку и кнопкой сохранения для сохранения всех данных, здесь я хочу попробовать, когда пользователь добавляет некоторые данные в сетка вместо того, чтобы делать запрос API, она должна сохранять данные локально, и когда пользователь нажимает кнопку сохранения, все данные означают данные сетки плюс эти 3 поля ввода данных, которые должны сохраняться в базе данных.
Paraent Модель
export class ParentModel<GridModel> {
parentId: number;
totalDue: number;
totalAmount: number;
totalDiscount: number;
childModel: GridModel[];
constructor(init?: Partial<ParentModel<GridModel>>) {
Object.assign(this, init);
}
}
Дочерняя модель
export class GridModel {
parentId: number;
childId: number;
deliveyAmount: number;
taxAmount: number;
constructor(init?: Partial<GridModel>) {
Object.assign(this, init);
}
}
Моя Служба для обмена данными между моделями
@Injectable({
providedIn: 'root'
})
export class DataShareService{
private parentSubject: BehaviorSubject<ParentModel<GridModel[]>> = new BehaviorSubject<ParentModel<GridModel[]>>(null);
//Just in case if need to subscribe
paretnt= this.parentSubject.asObservable();
constructor() { }
setGridData(griData: GridModel[]) {
this.parentSubject.value.childModel = griData;
}
setParentData(parenData: ParentModel<GridModel[]>) {
this.parentSubject.next(parenData);
}
get parentData(): ParentModel<GridModel[]> {
return this.parentSubject.value;
}
}
Файл ts сетки
saveGridData() {
this.dataShareService.setGridData(this.gridForm.value);
}
Родительский файл ts
saveParentData() {
this.dataShareService.setParentData(this.parentForm.value);
}
Но это не работает должным образом, я делает что-то не так или есть лучший способ сделать это