5

angular2アプリがありtypescriptます。ng2-dragulaを使用して、ドラッグ アンド ドロップ アプリケーションを作成しています。

条件を確認し、条件が false の場合はドラッグを元に戻す必要があり、ここから、要素を最初の場所に戻すことができることが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"
  }

問題は、ドロップをキャンセルする方法がわからないことです。

4

1 に答える 1

4

boolean movesと呼ばれるプロパティがあり、要素が移動可能かどうかを制御します

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

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

                             if(YourCondition)
                                     //return true;
                             else
                                     //return false; 
                         }))
于 2017-01-09T17:20:25.257 に答える