2016-12-16 9 views
1

Я пытаюсь предотвратить перемещение первого элемента из dragulaService, код работает впервые без ошибок, но когда я покидаю эту страницу, а затем снова открываю ее, m получить ошибку.Ошибка при получении второй страницы с помощью ng2-dragula

код, который вызывает ошибку:

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 EXCEPTION: Uncaught (in promise): Error: Error in ./SortTableComponent class SortTableComponent_Host - inline template:0:0 caused by: Bag named: "nested-bag" already exists. Error: Bag named: "nested-bag" already exists. at DragulaService.add (http://platform.local:8080/3.chunk.js:1070:19) at DragulaService.setOptions (http://platform.local:8080/3.chunk.js:1099:24) at new SortTableComponent (http://platform.local:8080/3.chunk.js:1311:24)

ответ

5

Вам нужно уничтожить nested-bag в onDestroy жизненного цикла вашего компонента вручную, потому что это не делается автоматически:

ngOnDestroy() { 
    this.dragulaService.destroy('nested-bag'); 
}