angular - 以角度将对象推送到表格组件
问题描述
场景:我有 2 个 api 被调用customers
,workers
我在一个名为的组件中显示我的所有customers
和它们的assigned workers
使用 表customers
,如下图所示:
当我单击特定客户的编辑按钮时,我将该特定客户对象(前客户 1)值注入到另一个名为编辑(对话框组件)的组件中,我在其中显示注入的属性和表。如下图:customer
(name,email)
assigned worker properties(name,email,phone)
如第二张图片所示,我在编辑组件中放置了另一个组件(工人列表),它将在下拉列表中显示所有工人:
预期结果:
- 现在我想将这些选定的工作人员从
workers-list
组件推送到组件中存在的表,edit
如下所示:
Ex pic:Worker 2
从 中选择并通过单击按钮dropdown
添加到组件中的表中。edit
Add
- 它不应该添加重复项。
我收到
emitted workers
了edit
组件,但我无法验证重复项,我也无法让push
新员工table
.
由于组件很多,我给出了stackblitz link。
解决方案
请看一看。要重新渲染表,您需要像这样创建一个新数组:
this.customerWorkers = [...this.customerWorkers, ...value];
要跳过空值(而不是将它们添加到表中),您可以对主题使用过滤器,例如:
this.dataService.onSelectWokers.pipe(
filter(x => x)
)
您还需要在将工作人员推送到服务之前对其进行映射,例如:
const workersMap = this.addForm.value.workerIds;
const workersArray = Object.keys(workersMap).map(x => workersMap[x]);
希望有帮助。
推荐阅读
- html - html页面渲染chrome vs IE
- distance - 德鲁伊查询计算每个相邻行的距离
- python - 'pylint' 不是内部或外部命令、可运行程序或批处理文件
- r - 如何正确使用 addResourcePath?
- javascript - 如何从字符串中提取年龄?
- angular - 离子/角度嵌套路由器出口:routerLinks 只工作一次
- amazon-web-services - aws Auto Scaling 在扩大应用程序不可用之前删除不健康的实例
- html - 是否可以使用 HTML 和 CSS 滚动到可滚动 div 内的哈希锚?
- java - 如何检查 java 代码与较低 jre 版本的兼容性
- node.js - 如何在 NodeJS 中自定义 keycloak 错误消息