Forms Angular 2 ngModel表单了解新选项

Forms Angular 2 ngModel表单了解新选项,forms,angular,Forms,Angular,我们采取以下形式: <form name="setQuestions_form" (ngSubmit)="set_questions()"> <ng-select [multiple]="true" [options]="questions" [(ngModel)]="selectedQuestions" name="selectedQuestions"></ng-select> <button>send</button>

我们采取以下形式:

<form name="setQuestions_form" (ngSubmit)="set_questions()">
    <ng-select [multiple]="true" [options]="questions" [(ngModel)]="selectedQuestions" name="selectedQuestions"></ng-select>
    <button>send</button>
</form>
方法集将数据发送到后端:

this.questionService.create(this.selectedQuestions).subscribe();
因此,我的数据库第一次是空的,但第二次我已经保存了问题(可以使用其他功能进行自定义,这样我就不希望删除或更改),如何在数据库中只插入选定的新问题?Angular 2中有什么东西可以在表单中知道select中的新选项,或者我应该在后端将保存的问题与新问题进行比较

示例:

[ ] Question 1
[X] Question 2
[X] Question 3
[ ] Question 4

[ ] Question 1
[ ] Question 2
[X] Question 3
[X] Question 4
在这里,我想知道问题2已经删除,问题4已经添加,我不关心未触及的问题,因此我可以向后端发送如下内容:

- Added: Question 4
- Removed: Question 2

忽略问题1和问题3(已选中但不是新问题)

这里是一个带有md复选框的示例,multi-select.html:

<div>
    <md-checkbox name="Q1" (change)="onCheckChange($event)">Question 1</md-checkbox>
    <md-checkbox name="Q2" (change)="onCheckChange($event)">Question 2</md-checkbox>
    <md-checkbox name="Q3" (change)="onCheckChange($event)">Question 3</md-checkbox>
    <md-checkbox name="Q4" (change)="onCheckChange($event)">Question 4</md-checkbox>
</div>
当然,有一个
从'@angular/material'导入{MdCheckboxModule}和相应模块的导入字段中的条目。
然后,console.log为:

Q4 = true
Q2 = false

下面是一个带有md复选框的示例,multi-select.html:

<div>
    <md-checkbox name="Q1" (change)="onCheckChange($event)">Question 1</md-checkbox>
    <md-checkbox name="Q2" (change)="onCheckChange($event)">Question 2</md-checkbox>
    <md-checkbox name="Q3" (change)="onCheckChange($event)">Question 3</md-checkbox>
    <md-checkbox name="Q4" (change)="onCheckChange($event)">Question 4</md-checkbox>
</div>
当然,有一个
从'@angular/material'导入{MdCheckboxModule}和相应模块的导入字段中的条目。
然后,console.log为:

Q4 = true
Q2 = false

因此,在
问题
中,您有前一个用户提交的问题,您想知道用户何时选择了数据库中不存在的新问题?用户可以从选择组件中添加或删除问题,因此我只想知道新的或删除的问题。我不知道Angular 2中是否有什么东西可以简化这个任务,因为没有可以跟踪它们的Angular特性,所以你必须实现一个。我建议您查看属于角度生命周期一部分的
ngochanges
事件,或将
onChange
事件添加到
ng select
中,并创建用户选择或取消选择选项时发生的逻辑。您还需要一个数组来跟踪选择的人和未选择的人,然后将其与您从db获得的数组进行比较。可能使用event MdCheckboxChange会有所帮助。因此在
问题中
,您有前一个用户提交的问题,您想知道用户何时选择了数据库中不存在的新问题?用户可以在“选择”组件中添加或删除问题,因此我只想知道新问题或删除的问题。我不知道Angular 2中是否有什么东西可以简化这个任务,因为没有可以跟踪它们的Angular特性,所以你必须实现一个。我建议您查看属于角度生命周期一部分的
ngochanges
事件,或将
onChange
事件添加到
ng select
中,并创建用户选择或取消选择选项时发生的逻辑。您还需要一个数组来跟踪所选人员和未选人员,然后将其与您从数据库中获得的数组进行比较。使用event MdCheckboxChange可能会有所帮助。