我目前正在为团队制定计划委员会,以便在一次迭代中规划他们的冲刺。提前这是我的第一个Angular 2应用程序,也是我的第一个Web应用程序。所以这个问题的重点是,弄清楚使用嵌套数据设计Angular 2 App的最佳方法是什么。
当前应用程序的结构
在后端运行ASP.NET Web API来提供数据。数据结构构造如下:
顶层由每次迭代的规划板组成。这些委员会由团队组成,而团队又有冲刺。 (团队x在此迭代中有4个Sprints,团队y 6)。您可以在短跑中使用CRUD功能。
如何在Angular 2中映射?
途径
到目前为止,我的第一个也是唯一的方法是为每个层创建一个组件,该组件应该管理相应的内容。这意味着我有一个组件
- 对于规划委员会,应该为选定的委员会加载团队,
- 对于应该为团队加载和排序冲刺的团队,
- 用于加载,排序和管理冲刺中功能的冲刺。
这种方法的第一个问题是创建正确的HTML结构,甚至知道plannend结构最终是否有效。目前我创建了以下模板:
<planningboard>
<team class="Team-Yellow">
</team>
<team class="Team-Blue">
</team>
...
</planningboard>
此时,我还可以通过选择团队组件中的团队标签,在团队标签下嵌套sprint标签。但是只有每个团队标记相同的sprint标签,因为我无法使用HTML class属性过滤selctor以仅选择属于团队的sprint。这个问题让我有些疑问,我正在追求一个可行的解决方案吗?
在这种情况下,为我的数据模型的每个相关实体创建HTML标签是一种好的甚至是一种有效的方法吗?
在此上下文中,每种实体类型只有一个组件是否合适?
编辑:
与此同时,我尝试了另一种方法。我只使用一个组件来获取所有数据并从中创建HTML模板。 HTML看起来像这样:
<planningboard>
<div class="Team-Yellow">
<div class="Sprint-1>
<ul class="Features">
<li>Feature 1</li>
...
</ul>
</div>
<div class="Sprint-2">
...
</div>
</div>
<div class="Team-X">
...
</div>
</planningboard>
但是通过这种方法,我只有一个组件负责内容并管理所有数据。我也不确定这是不是一个好主意。
编辑:关于GünterZöchbauer的评论。
也许我有理由为实体类型少一个甚至多一个组件。目前,我为一个组件中的每个实体创建“angular-tags”。作为一个例子,我有团队组件,它管理大约50-60个sprint-tags,因为我为每个团队创建了sprint-tags。在我制作的每个教程和我已经看到的非常有用的角度代码中,没有人处理甚至为组件创建多个相同的标记。但如果我不这样做,我的HTML结构毫无意义。那我该怎么办?为每个实体动态创建组件或只创建一个组件? 我也遇到了一些具体的问题:
实施例: 计划板组件负责将团队分配给董事会。因此,在选择了一个电路板后,它会获得正确的团队数据,然后构建以下HTML模板:
<planningboard id="PI 17.1">
<team class="Team-Yellow">
</team>
<team class="Team-XY">
</team>
...
</planningboard>
直到这里没问题。 现在团队组件应该将sprint插入团队标签中。因此,它获得相关的sprint数据并了解团队。但是如何插入正确的HTML结构?我是否应该插入一个HTML模板,它能够遍历冲刺并将他们的团队ID与父母团队ID进行比较? 这就是我的第二种方法的原因,上面提到只有一个组件。在一个组件中,我可以说,为每个团队创建一个团队容器,并在每个sprint的容器中创建一个sprint容器,依此类推。但是,如果我使用每个实体类型的compnent执行此操作,我总是需要迭代父元素的现有结构,然后传入子标记。我不知道怎么做。
我很感激任何建议或提示!
问候, 亨德里克