angular - Angular中数据模型的结构引用。不一样的逻辑
问题描述
在我的 Angular 项目中,我的模型需要 3 个功能:
a)模型与大层次结构中的其他模型有关系,我想通过读取模型内部的变量来访问数据关系。示例:模型 A 与模型 B 有关系,模型 B 与模型 C 有关系,模型 C 与模型 D 有关系,......我的目标是能够像这样读取关系数据:
<div *ngFor="let elementA of modelA_list">
<div *ngFor="let elementB of elementA.modelB_list">
<div *ngFor="let elementC of elementB.modelC_list">
{{elementC.something}}
</div>
</div>
</div>
b) 模型之间的关系有时是双向的。例如:模型 A 与模型 B 有关系,模型 B 与模型 A 有关系。这会产生导入导致的循环依赖错误。
c)我想要每个模型类型都有一个具有相同 id 的唯一对象。这是因为如果元素发生更改,我希望更新应用程序中显示有关此元素的信息的其他位置的信息。例如:
// first fragment
<div *ngFor="let elementA of modelA_list">
<div *ngFor="let elementB of elementA.modelB_list">
<input [(ngModel)]="elementB.name"></div>
</div>
</div>
// second fragment
<div *ngFor="let elementC of modelC_list">
<div *ngFor="let elementB of elementC.modelB_list">
{{elementB.name}}
</div>
</div>
在此代码中 {{elementB.name}} 显示在应用程序的两个部分中,如果 elementB 的名称在第一个片段的输入中发生更改,我希望此信息在第二个片段中更新。
想到这里,我有了一个想法。这个想法是建立一个基于接口模型的系统。该模型具有类型为空的变量,这些变量any[]
将根据关系数据存储对其他模型对象的引用。这种结构不会导致循环依赖错误。为了让每个模型类型都有一个具有相同 id 的唯一元素,有一个服务可以存储应用程序中每个模型类型的模型类型的所有唯一元素。最后,核心服务可以返回一个模型类型的对象列表以及与内部其他模型的关系,实时构建。
如果您看到图表,在“组件 1”中,您可以获得模型类型 modelA 的元素(引用)列表以及与 modelB 和 modelC 的关系数据,如下所示:
+--模型A[0] | +--id: 1 | +--名称:示例 1a | +--models_b: | | | +--型号B[0] | | | | | +--id: 1 | | | | | +--名称:示例 1b | | | +--型号B[1] | | | +--id: 2 | | | +--名称:示例 2b | | | +--models_c | | | +--型号C[0] | | | +--id: 1 | | | +--名称:示例 1c | +--models_c: | +--型号C[0] | +--id: 1 | +--名称:示例 1c
我已经编写了一个代码来测试这个系统:Codesandbox Link
在这一点上,我的问题是:
1)¿这个系统管理模型是否正确?
2) ¿ 已经存在类似于这个系统的东西?
3)如果这个系统不正确¿我可以做哪些其他逻辑来解决这个问题?
对不起我的英语,感谢您的帮助和时间。
解决方案
推荐阅读
- oracle - Oracle xe 18c 数据库自动关闭
- php - 按自定义产品属性过滤产品并在 WP_Query 中发布元数据
- pip - 如何解决 gTTS 安装错误?
- xml - 需要用于 xhtml:link 的 XSLT 选择器
- haskell - 如何确定 Haskell 中是否正在记忆函数?
- sql - pyspark sql查询:根据条件计算不同的值
- r - 在不展开()的情况下在 y 轴上方添加空间
- powershell - 需要一个 PowerShell 脚本来查找昨天没有修改文件的文件夹
- android - 在 Android 中,如何根据材料设计文档的规定创建一个概述的下拉菜单(微调器)?
- sapui5 - SAPUI5 - SmartFilterBar“filterchange”方法未触发自定义控件(SearchField,MultiComboBox)