Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular 角度表达式更改终端检查错误_Angular_Typescript_Error Handling - Fatal编程技术网

Angular 角度表达式更改终端检查错误

Angular 角度表达式更改终端检查错误,angular,typescript,error-handling,Angular,Typescript,Error Handling,我的数据表有问题。当我加载数据时,我想显示忙碌指示器。这是通过将This.loading传递到DataTableComponent来实现的。一切正常(在页面之间切换、搜索),但当我更改页面大小(相同的方法加载)时,我会得到表达式更改 我有供应商组件,其中包含方法加载 load(loadParams: IDatatableLoadEvent): void { this.loading = true; this.vendorService.loalAll(loadParams.sor

我的数据表有问题。当我加载数据时,我想显示忙碌指示器。这是通过将This.loading传递到DataTableComponent来实现的。一切正常(在页面之间切换、搜索),但当我更改页面大小(相同的方法加载)时,我会得到表达式更改

我有供应商组件,其中包含方法加载

load(loadParams: IDatatableLoadEvent): void {
   this.loading = true;
    this.vendorService.loalAll(loadParams.sortBy, loadParams.currentPage, loadParams.pageSize, loadParams.searchTerm, loadParams.sortOrder.toLowerCase())
    .subscribe((res: HttpResponse<IVendor[]>) => {
      this.filteredData = res.body;

      // we have to set x-pagination to COSR rules on API server
      const xPagination = res.headers.get('x-pagination');
      this.filteredTotal = JSON.parse(xPagination).totalCount;

      this.loading = false;
      // Hack - because we are setting loading and until data are loaded
      // we have to stop changeDetection and tell angular when to detect changes
      // - this happens only when we are changing pagesize
      this.cdr.detectChanges();
    }, error => {
      this.loading = false;
    });
  }
load(loadParams:IDatatableLoadEvent):无效{
这是。加载=真;
this.vendorService.loalAll(loadParams.sortBy、loadParams.currentPage、loadParams.pageSize、loadParams.searchTerm、loadParams.sortOrder.toLowerCase())
.订阅((res:HttpResponse)=>{
this.filteredData=res.body;
//我们必须在API服务器上将x分页设置为COSR规则
const xPagination=res.headers.get('x-pagination');
this.filteredTotal=JSON.parse(xpaginion.totalCount);
这一点:加载=错误;
//黑客-因为我们正在设置加载,直到数据加载
//我们必须停止变更检测,并告诉angular何时检测变更
//-只有在更改页面大小时才会发生这种情况
this.cdr.detectChanges();
},错误=>{
这一点:加载=错误;
});
}
下面是如何在dataTable组件中实现加载栏:

我在这里创建了一个简单的示例,但它不加载数据,因此您不能尝试异常。但这足以让我们有一个更好的概述


我找到了解决此问题的一个方法-手动设置更改检测,但我想知道这是否是正确的方法。

尝试检查此值。pageSize与“page()”函数中的值不同:if(this.pageSize!=pagingEvent.pageSize)this.pageSize=pagingEvent.pageSize@Eliseo这没有帮助,当this.loading在Load method(subscribe success event)中设置为false时,会发生异常。对不起,问题不是页面大小,而是发射器,您必须将loadEvent定义为@Output()loadEvent:EventEmitter=new EventEmitter(true);(是的,“真实”才是关键)