正在执行演示应用程序。是angulat的新手。下面是我的类别列表组件。
import { Component, OnInit } from '@angular/core';
import { Router } from '@angular/router';
import { Observable } from 'rxjs';
import { map } from 'rxjs/operators';
import { AngularGridInstance, Column, GridOption, GraphqlService, GraphqlResult, Filters, Formatters, OnEventArgs, FieldType } from 'angular-slickgrid';
import { CategoryDataService } from 'src/app/core/services/category-data.service';
import { PageService } from 'src/app/core/services/page.service';
const GRAPHQL_QUERY_DATASET_NAME = 'categories';
@Component({
templateUrl: './category-list.component.html',
styleUrls: ['./category-list.component.css']
})
export class CategoryListComponent implements OnInit {
angularGrid: AngularGridInstance;
columnDefinitions: Column[];
gridOptions: GridOption;
dataset = [];
constructor(private dataService: CategoryDataService, private router: Router, private pageService: PageService) {
}
ngOnInit(): void {
this.columnDefinitions = [
...removed
];
this.gridOptions = {
backendServiceApi: {
service: new GraphqlService(),
options: {
columnDefinitions: this.columnDefinitions,
datasetName: GRAPHQL_QUERY_DATASET_NAME
},
process: (query) => this.getCategories(),
}
};;
}
getCategories(): Observable<GraphqlResult> {
var args = this.pageService.getPageArgs(this.angularGrid);
return this.dataService.searchCategories(args)
.pipe(map(
page => {
var result: GraphqlResult = {
data: {
[GRAPHQL_QUERY_DATASET_NAME]: {
nodes: page.items, ---here i am getting error
pageInfo: {
hasNextPage: page.hasNextPage
},
totalCount: page.totalCount
}
}
};
return result;
}));
}
}
该演示项目之前运行良好。当我更新到最新的光滑网格版本时,我得到以下错误..它表明没有键入任何... 请让我知道如何将泛型类转换为任何类型..谢谢
分页界面。
export interface IPagedList<T> {
pageIndex: number;
.... removed
items: T[];
}
错误: 计算属性值的类型为'{节点:IProduct []; pageInfo:{hasNextPage:boolean; }; totalCount:数字; }”,该类型不可分配给“ any []”类型。 对象文字只能指定已知的属性,而“节点”在类型“ any []”中不存在。
答案 0 :(得分:1)
Angular-Slickgrid的版本2.15.x
中有一个小小的重大更改,我在使用分页时添加了新的GraphqlPaginatedResult
类型,而当您不使用时添加了GraphqlResult
,它更能代表哪个是哪个。因此,您只需要将“类型”切换为GraphqlPaginatedResult
。我不想仅针对那1个小的Type更改发布一个中断版本(3.x
)(我认为没有人使用GraphQL部分大声笑),所以您需要更新代码(从GraphqlResult
到GraphqlPaginatedResult
的查找和替换。)
getCategories(): Observable<GraphqlPaginatedResult> {
在此Release变更日志中对此进行了解释。
此外,完成更改后,我创建了一个新的Example 27 - Graphql without Pagination,它是使用GraphqlResult
的那个,而前一个Example 6 - Graphql使用的是新的GraphqlPaginatedResult
类型。>