[英]Angular2 RxJS Pagination appending vs slicing
我正在为Angular2建立一个数据表项目 。 我想使用rxjs对行进行分页,但是当我对它进行分页时,将其“附加”到行上。
我正在这样做:
get paginated() {
let { first, last } = this.indexes;
return this.rows
.skip(first)
.take(last)
.toArray();
}
参考:src / services / State.ts#L62
和Angular2在其上循环如下:
<datatable-body-row
*ngFor="let row of state.paginated | async"
[row]="row"
[state]="state">
</datatable-body-row>
参考:src / components / body / Body.ts#L18
获取行数据并将其插入此处
这是RX的不好用例还是我做错了什么? 我在这里找到了一个类似的示例,但似乎无法使其与我的示例一起使用。
旁注:如果克隆并npm install / npm start,则此项目会运行 。
似乎您正在处理行,好像它是数组的可观察对象,但是您正在对数组流而不是对流中的数组应用跳过/获取运算符。 同样,第一个/最后一个是可能的索引,而take操作符接受许多行。 建议:
1)如果this.rows实际上是一个行数组流,即smt,如Observable<Row[]>
,则重命名为this.rows $。
2)分页方法应返回一个可观察到的数组,按跳过/获取或按切片进行切片:
return this.rows$
.map(rows => rows.slice(first, last))
请注意,如果在流上应用跳过/获取运算符,则实际上是在等待第[SKIP]个发射,并且仅对第[TAKE]个随后的发射保持流打开,其中每个发射都是行阵列。
发布完整的代码示例以获取进一步的指导。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.