2017-01-06 14 views
5

У меня есть приложение angular2 с typescript. Я использую ng2-dragula, чтобы сделать приложение перетаскивания.Dragula: вернуть падение в ng2-dragula

Я к взыскательных, проверять состояние и вернуть лобовое сопротивление, если условие ложно, и я знаю, из here, что revertOnSpill что revertOnSpill:true может поместить элемент обратно в первую очередь.

Но, Я не знаю, как это возможно вng2-dragula. Я включил его в onDrop. вот код

constructor() { 

       dragulaService.drop.subscribe((value) => { 
        this.onDrop(value.slice(1)); 
       }); 

       dragulaService.setOptions('second-bag', { 
        removeOnSpill: true 
       }); 
} 

private onDrop(args) { 
    bla 
    bla 
    bla 
    if(err.status=="404")                
      this.dragulaService.removeModel; 
     // this.dragulaService.cancel; also tried but did not work 
} 

и здесь HTML-код:

<div id="toPlay" class="playBox roundedBox" [dragula]="'second-bag'"> 
    <img class="w3-animate-top" [src]="sax_path" alt="sax" id="saxsophone"/> 
    <img class="w3-animate-top" [src]="drum_path" alt="drum" id="drum"/> 
</div> 
<div id="scene" [dragula]="'second-bag'"> 

</div> 

Package.json является:

"dependencies": { 
    "dragula": "^3.7.2" 
    }, 
    "peerDependencies": { 
    "@angular/common": "^2.0.0", 
    "@angular/core": "^2.0.0", 
    "@angular/compiler": "^2.0.0", 
    "@angular/forms": "^2.0.0" 
    }, 
    "devDependencies": { 
    "angular-cli": "1.0.0-beta.22-1", 
    "typescript": "2.0.10" 
    } 

проблема, я не знаю, как отменить падение?

+0

Вы используете Dragula или NG2-Dragula? – Meir

+0

у вас есть ng2-dragula? Если нет, у них есть пакет специально для angular2: https://github.com/valor-software/ng2-dragula – Meir

+0

Никогда не делал этого сам, но я думаю, что метод 'accepts' (см. Здесь: https: // github .com/bevacqua/dragula) - это то, что вы после – Meir

ответ

4

Там это свойство называется булево moves, который управляет тогда и только тогда элемент выполнен с возможностью перемещения или не

this.dragulaService.setOptions('second-bag', { 

     moves: (el, container, handle) =>{ 

          if(YourCondition) 
            //return true; 
          else 
            //return false; 
         })) 
+0

Большое спасибо, я оттягивал волосы от этого. – trichetriche

+0

Как я могу вернуть падение, если api возвращает false. Я вызываю api в функции onDrop(), если функция api не работает, тогда я хочу переместить упавший элемент в исходный контейнер. – hkg328

 Смежные вопросы

  • Нет связанных вопросов^_^