嵌套数据的角度2设计

时间:2017-02-20 08:50:35

标签: angular nested

我目前正在为团队制定计划委员会,以便在一次迭代中规划他们的冲刺。提前这是我的第一个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。这个问题让我有些疑问,我正在追求一个可行的解决方案吗?

  1. 在这种情况下,为我的数据模型的每个相关实体创建HTML标签是一种好的甚至是一种有效的方法吗?

    • 整个董事会的一个计划板标签
    • 团队的X队标签
    • Y sprint-tags嵌套在单个team-tags
    • 嵌套在sprint-tags
    • 下的Z要素标签
  2. 在此上下文中,每种实体类型只有一个组件是否合适?

    • 一个用于planninboards
    • 一支队伍
    • 一个用于短跑
    • 一个功能
  3. 编辑:

    与此同时,我尝试了另一种方法。我只使用一个组件来获取所有数据并从中创建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结构毫无意义。那我该怎么办?为每个实体动态创建组件或只创建一个组件? 我也遇到了一些具体的问题:

    1. 如何区分不同的标签或过滤选择器(使用HTML class / id)?这样组件就能够分配正确的值,
    2. 实施例: 计划板组件负责将团队分配给董事会。因此,在选择了一个电路板后,它会获得正确的团队数据,然后构建以下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执行此操作,我总是需要迭代父元素的现有结构,然后传入子标记。我不知道怎么做。

      我很感激任何建议或提示!

      问候, 亨德里克

0 个答案:

没有答案