PrimeNG PickList onMove和onMoveAll事件处理程序

时间:2017-11-17 16:28:15

标签: angular primeng

我正在为我的Angular 5应用程序使用PrimeNG PickList(5.0.0-rc0)。我的问题是onMoveToTargetonMoveAllToTarget同时被调用,我不认为它不应该那样。我使用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提交问题之前我会问这里。

1 个答案:

答案 0 :(得分:0)

也许您应该在第一个事件上尝试event.preventDefault(),这样它就不会传播到其他事件?如果它不起作用,您可以使用条件来查看项集合的大小,然后只有其中一个将呈现您的表单(甚至是它的组合)