我正试图在我正在构建的应用程序中实现一个需求/特性,我正在努力实现它。我使用angular6来构建ui,lumen用于api,mysql用于持久层。
要求是:
有普通用户和管理员用户的集合。
有一个“技能”集合。
管理员用户可以“分配”“技能”给用户。
管理员用户可以添加/编辑/删除“技能”的主列表。
我目前的计划是:
创建“skills”数据库表以存储所有技能名称和id。
创建“skills\u users”数据库表以存储分配给相应用户的所有技能。
创建端点以返回数据库表中的所有“技能”,因为它们将是动态值。
为用户资源创建端点,该资源采用名为“skills”的数组属性,该属性包含要分配给特定用户的所有“skills”的ID。
我正在努力解决的一点是为用户分配“技能”的ui。ui将需要请求所有“技能”的列表,并在页面上以复选框字段的形式动态显示它们(我可以这样做)。但是我需要一种方法来使用动态生成的表单,该表单使用checkbox字段来构造新的有效负载,我不太确定如何做到这一点。
这是我到目前为止得到的html代码,但它并不完整,因为我不知道如何完成它:
<div class="mb-1" *ngFor="let additional_skill of additional_skills; let i = index">
<mat-checkbox [(ngModel)]="skills[i]" name="{{ additional_skill.id }}">{{ additional_skill.name }}</mat-checkbox>
</div>
任何帮助都将不胜感激,我希望我已经解释清楚了。
1条答案
按热度按时间8yparm6h1#
您可以在mat复选框上编写一个click事件处理程序,并将每个单击的技能推送到一个数组中。然后您可以构建一个具有两个属性的对象,例如,id(我们要与技能关联的用户的id)和您所拥有的所选技能数组,并将其保存。像这样:
技能.component.html
技能.component.ts
希望这是有用的!