Winkel-2: wie bedingt gelten Attribut-Richtlinie?
Ich per drag&drop über ng2-dragula.
Die drag&drop-Funktionalität wird auf diese Weise:
<div class='container' [dragula]='"first-bag"'>
<div>item 1</div>
<div>item 2</div>
</div>
Wenn ich verstehe, Winkel 2 richtig, die Art und Weise, wie [dragula]='"first-bag"'
angeschlossen ist, um mein div heißt Attribut-Richtlinie im Winkel 2.
Nun habe ich eine variable in meiner Komponente namens enableDragNDrop:boolean
. Wie kann ich diese variable verwenden, zum befestigen [dragula]='"first-bag"'
zu meinen div nur wenn enableDragNDrop == true
?
Wenn enableDragNDrop == false
möchte ich diese:
<div class='container'><!-- no dragula attribute directive, no dragndrop -->
<div>item 1</div>
<div>item 2</div>
</div>
Du musst angemeldet sein, um einen Kommentar abzugeben.
Gibt es keine Möglichkeit zum dynamischen hinzufügen/entfernen von Richtlinien durch hinzufügen/entfernen von einem Selektor. Der Selektor
dragula
werden statische HTML-für die die Richtlinie angewendet werden. Sie können nur Funktionen dragula zu aktivieren/deaktivieren, wenn es bietet eine solche Konfiguration.Habe ich nicht verwendet
ng2-dragula
oderdragula
aber ich denke, Sie können zuweisen einerdragModel
und konfigurieren Sie es auf diese Weiseund wenn Sie wollen, um es zu aktivieren, weisen Sie ein Modell, das nicht deaktivieren, starten
Nicht getestet, nur Magermilch ein bisschen durch die Quelle.
dragulaModel = {start: function () {}};
, drag&drop ist erlaubt, und wenn Artikel ist bewegt und Abwurf, wird folgender Fehler geworfen:TypeError: sourceModel.splice is not a function
. Btw, es gibt zwei Ansätze, wie mit den Problemen umzugehen: die eine ist, um vollständig verhindern, dass drag&drop aus dem geschehen - so weit wir wissen nicht, wie Sie dies tun. Der zweite Ansatz ist, dass drag&drop ist möglich, aber die Ergebnisse werden nicht gespeichert, d.h.if(enableDragNDrop) this.dragulaService.dropModel.subscribe(this.myCustomOnDropCallback.bind(this))
enableDragNDrop == true
.