Angular 两种角度模型,用于通过和;显示数据

Angular 两种角度模型,用于通过和;显示数据,angular,angular6,ngxs,angular-state-managmement,Angular,Angular6,Ngxs,Angular State Managmement,我在ngxs中使用模型时遇到问题。 我必须使用不同的模型将数据传递给api,并从api获取数据 我基本上有一个报表模型和一个网络名称模型。既然我的代码中有错误,我将如何集成它们。我只能用一种型号?或者我如何在我的模型中修改它 我只想在我的Angular应用程序上获得最佳实践,因此我希望分配适当的模型。请随意重组或更改许多代码等 这里是stackblitz链接 @操作(GetNetIncomes) GetNetIncomes(ctx:StateContext,{payload}:GetNetInc

我在ngxs中使用模型时遇到问题。 我必须使用不同的模型将数据传递给api,并从api获取数据

我基本上有一个报表模型和一个网络名称模型。既然我的代码中有错误,我将如何集成它们。我只能用一种型号?或者我如何在我的模型中修改它

我只想在我的Angular应用程序上获得最佳实践,因此我希望分配适当的模型。请随意重组或更改许多代码等

这里是stackblitz链接

@操作(GetNetIncomes)
GetNetIncomes(ctx:StateContext,{payload}:GetNetIncomes){
返回此.reportsService.getNetIncomes(有效负载).pipe(
点击((结果:NetIncome)=>{
ctx.patchState({
净收入:结果,
});
}),
catchError((err)=>{
控制台日志(err);
回程抛掷器(err);
})
);
}

getNetIncomes返回一个报告数组或报告[],然后您试图将其强制转换为NetIncome,但它不符合要求。我建议在点击之前添加一个映射操作符,将结果转换为NetIncome,或者在ReportStateModel中更改净收入的类型。当然,正如聊天中所讨论的,我们有一个简单的域对象未对齐。看看这个。。。
@Action(GetNetIncomes)
  GetNetIncomes(ctx: StateContext<ReportStateModel>, { payload }: GetNetIncomes) {
    return this.reportsService.getNetIncomes(payload).pipe(
      tap((result: NetIncome) => {
        ctx.patchState({
          net_incomes: result,
        });
      }),
      catchError((err) => {
        console.log(err);
        return throwError(err);
      })
    );
  }