4

ユーザーが の最初の要素を移動できないようにしようとしてdragulaServiceいます。コードは最初はエラーなく動作しますが、このページを離れてから再度開くと、エラーが発生します。

エラーの原因となっているコード:

constructor(public service:SmartTablesService, private dragulaService:DragulaService) {
    dragulaService.setOptions('nested-bag', {
      revertOnSpill: true,
      moves: function (el:any, container:any, handle:any):any {
        if (handle.className === 'sorting-table-title') {
          return false;
        } else {
          return true;
        }

      }
    });

エラーは次のとおりです。

error_handler.js:48 例外: キャッチされていません (約束されています): エラー: ./SortTableComponent クラス SortTableComponent_Host でエラーが発生しました - インライン テンプレート:0:0 原因: バッグ名: "nested-bag" は既に存在します。エラー: "nested-bag" という名前のバッグは既に存在します。DragulaService.add ( http://platform.local:8080/3.chunk.js:1070:19 ) で DragulaService.setOptions ( http://platform.local:8080/3.chunk.js:1099:24 )新しい SortTableComponent で ( http://platform.local:8080/3.chunk.js:1311:24 )

4

2 に答える 2

11

自動的に行われないため、コンポーネントのライフサイクルで手動でnested-bag破棄する必要があります。onDestroy

ngOnDestroy() {
    this.dragulaService.destroy('nested-bag');
}
于 2016-12-16T11:58:01.113 に答える