angular - 最初加载远程数据时 Angular 组件出现问题
问题描述
我正在玩 Kendo TreeView Control,我遇到了以下问题。我创建了一个使用剑道树视图的可重用组件,并传递了包含所有节点的表以及包含所有选定键 guid 的数组。当我将选定的键作为静态数组传递时,我没有收到错误,如果我告诉它从后端 api 获取数据,我会收到以下错误
ERROR 错误:无法读取 null 的属性“加入”
我确信这与试图访问尚不存在的数据的组件有关。所以不知道我将如何告诉组件等待它。
解决方案
ngIf
当数据随指令到达时,您可以有条件地渲染组件。
<app-kendo-tree
*ngIf="selectedNodes$ | async as selectedNodes"
[nodes]="data"
[checkedKeys] = "selectedNodes"
[checkBox] = true
></app-kendo-tree>
要有条件地等待多个请求,我建议使用combineLatest:
vm$: Observable<{ data: any; selectedNodes: [] }>;
ngOnInit() {
const data$ = this.getAllMenuItems();
const selectedNodes$ = this.getAllSelectedNodes().pipe(shareReplay());
this.vm$ = combineLatest([data$, selectedNodes$]).pipe(
map(([data, selectedNodes]) => ({ data, selectedNodes }))
);
}
<app-kendo-tree *ngIf="vm$ | async as vm"
[nodes]="vm.data"
[checkedKeys] = "vm.selectedNodes"
[checkBox] = true
></app-kendo-tree>
推荐阅读
- python - 如何使用 ChemDataExtractor 创建自定义解析器以获取给定文本中的实体?
- node.js - Socket.io 客户端两次连接到服务器,并立即断开连接(反应)
- tensorflow - keras 中的 One-hot 编码标签
- python-3.x - 如何在烧瓶中创建 HTTPS 代理服务器?
- javascript - 在 ES6 中使用 module.exports 导出多个函数
- google-apps-script - 使用链接到脚本的按钮时,选定的单元格不会更新
- linux - 网络扫描输出级别服务器 Hetzner
- javascript - 如何在 Javascript 中创建边(链接)和节点?
- python - python - 如何用KNN方法填充python中二进制变量的缺失值?
- react-native - 对于 Flatlist 分页,React Native 动画不流畅