我正在开发一个Angular 2应用程序,我目前正在努力使用select2(多个选项设置为true)(https://github.com/NejcZdovc/ng2-select2)并在反应形式中使用它。我在问题中找到了一些自定义,如下所示:
但是当我实际将select2放在表单中然后在页面上打印表单的值时,选择的值是一个空列表。我想ControlValueAccessor接口没有完全正确实现,但经过多次尝试后我找不到任何解决方案。
我使用这样提到的select2组件:
...
<select2 [data]="instruments" formArrayName="instruments" [options]="{multiple: true}"></select2>
...
顺便说一句 - 我知道我可以像我这样<select2 #select ...>
得到我的Select2Component的值,但实际上我使用Select2Component作为FormArray中的表单字段。为了清楚起见,我的表格看起来像这样:
<div [formGroup]="clientForm">
<input type="text" formControlName="first_name">
<input type="text" formControlName="last_name">
<app-events-array #events_array></app-events-array>
</div>
和<app-events-array>
是包含一系列事件的用户(用户可以添加空白事件并删除选定的事件,例如通常的formset):
<div [formGroup]="eventsForm">
<p-calendar formControlName="start"></p-calendar>
<p-calendar formControlName="end"></p-calendar>
<select2 [data]="instruments" formArrayName="instruments" [options]="{multiple: true}"></select2>
</div>
一切正常,我唯一可以开始工作的是app-events-array中的这些乐器select2。当我events_array.events.value
(其中.events
是FormArray
时,我会得到一个空列表,尽管选择了选项。
我错过了什么?
祝你好运, 丹尼尔