我正在为我的Angular 5应用程序使用PrimeNG PickList(5.0.0-rc0)。我的问题是onMoveToTarget
和onMoveAllToTarget
同时被调用,我不认为它不应该那样。我使用PickList根据拾取的内容动态地将FormControl
添加到Form
。
用例:
onMoveToTargetHandler(event) {
if (!this.moveAllToTarget) {
this.form.addControl(event.items[0].slug, this._formBuilder.group({//some model that matches the control added}))
}
}
onMoveAllToTargetHandler(event) {
this.moveAllToTarget = true;
let itemsProcessed = 0;
event.items.forEach(item => {
this.form.addControl(item.slug, this._formBuilder.group({//some model that matches the control added}));
itemsProcessed++;
});
if (itemsProcessed === event.items.length) {
this.moveAllToTarget = false;
}
}
这两种方法几乎同时被调用,这导致我在表单中重复FormControls
。
有没有办法解决这个问题?我想在向PrimeNG Github提交问题之前我会问这里。
答案 0 :(得分:0)
也许您应该在第一个事件上尝试event.preventDefault(),这样它就不会传播到其他事件?如果它不起作用,您可以使用条件来查看项集合的大小,然后只有其中一个将呈现您的表单(甚至是它的组合)