2017-11-17 10 views
0

私はAngular 5アプリケーションにPrimeNG PickList(5.0.0-rc0)を使用しています。私の問題は、onMoveToTargetonMoveAllToTargetが同時に呼び出されることです。私はそれがそのように振るべきではないと思います。 PickListを使用して、選択された内容に基づいてFormFormControlを動的に追加します。PrimeNG PickList onMoveおよびonMoveAllイベントハンドラ

ユースケース:

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; 
    } 
} 

これらの2つの方法は、私の形でFormControlsを重複していることが原因とほぼ同時に同じように呼び出されます。

これを回避する方法はありますか? PrimeNG Githubに問題を提出する前に私がここで尋ねると思った。

+0

おそらく[forum] (https://forum.primefaces.org/viewforum.php?f=35&sid=45e34922772fa61d6741489375083cde)? – Antikhippe

+0

私はこれを投稿した直後にしました。残念ながら、まだ答えはありません –

+0

PickListModuleを修正して、これを回避しなければなりませんでした。 –

答えて

0

他のイベントにも広がらないように、最初のイベントでevent.preventDefault()を試してください。それがうまくいかない場合は、条件付きでアイテムコレクションのサイズを調べることができ、そのうちの1つだけがフォームをレンダリングします。

関連する問題