2017-01-06 3 views
5

Ich habe eine angular2 App mit typescript. Ich benutze ng2-dragula, um eine Drag & Drop-Anwendung zu machen.Dragula: Rückgang in ng2-Dragula

Ich requiered zu, Prüfen Sie den Zustand und den Widerstand zurück, wenn die Bedingung falsch ist, und ich weiß aus here, dass revertOnSpill dass revertOnSpill:true das Element in seine erste Stelle setzen kann zurück.

Aber, Ich weiß nicht, wie es inng2-dragula möglich ist. ich implizierte es in der onDrop. hier ist der Code

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 
} 

und hier wird der HTML-Code:

<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 ist:

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

das Problem ist, ich weiß nicht, wie zu stornieren der Fall?

+0

Verwenden Sie dragula oder NG2-dragula? – Meir

+0

hast du auch ng2-dragula? Wenn nicht, haben sie ein Paket speziell für angular2: https://github.com/valor-software/ng2-dragula – Meir

+0

Ich habe es nie selbst gemacht, aber ich denke, dass die "akzeptiert" -Methode (siehe hier: https: // github .com/bevacqua/dragula) ist was du willst – Meir

Antwort

4

Es ist eine Eigenschaft, boolean moves genannt, die steuert iff ein Element beweglich ist oder nicht

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

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

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

Ein großes Dankeschön, ich zog mir die Haare aus. – trichetriche

+0

Wie kann ich den Tropfen zurückbekommen, wenn API falsch zurückgibt. Ich rufe api in onDrop() -Funktion, wenn API-Funktion fehlgeschlagen ist, dann möchte ich Drop-Element in den ursprünglichen Container verschieben. – hkg328

Verwandte Themen