angular
  • drag-and-drop
  • dragula
  • 2016-05-04 15 views 3 likes 
    3

    私はng2-dragula経由でドラッグ&ドロップ&を使用しています。 ドラッグ&ドロップ機能がこのように適用されます。角2:属性ディレクティブを条件付きで適用する方法は?

    <div class='container' [dragula]='"first-bag"'> 
        <div>item 1</div> 
        <div>item 2</div> 
    </div> 
    

    私は適切な角度2を理解していれば、[dragula]='"first-bag"'が私のdiv要素に取り付けられている。どのような方法がAttribute Directiveと呼ばれる角2

    に今私は、変数を持っています私のコンポーネントではenableDragNDrop:booleanと呼ばれています。どのように私は私のdivだけenableDragNDrop == true[dragula]='"first-bag"'を添付するために、この変数を使用できますか?動的セレクタを削除/追加することによって、ディレクティブを追加/削除する方法はありません

    <div class='container'><!-- no dragula attribute directive, no dragndrop --> 
        <div>item 1</div> 
        <div>item 2</div> 
    </div> 
    

    答えて

    2

    enableDragNDrop == false場合、私はこれをしたいです。セレクタdragulaは、ディレクティブが適用されるための静的なHTMLである必要があります。このような設定オプションが提供されている場合にのみ、dragulaの機能を使用して有効/無効にすることができます。

    私はng2-dragulaまたはdragulaを使用していないが、私はあなたがdragModelを割り当て、このよう

    <div class='container' dragula [dragulaModel]="dragulaModel"> 
    
    dragulaModel = {start: function() {}}; 
    

    、あなたがそれを有効にする場合、doesnのモデルを割り当てるように設定することができますね開始を無効にしてください

    enableDrag() { 
        this.dragulaModel = {}; 
    } 
    

    テストされていません。ちょっとだけソースをスキミングしました。

    +0

    私は私の答えを更新しました。 –

    +0

    返信ありがとうございます。場合 'dragulaModelは= {開始:関数(){}};'、ドラッグ&ドロップが許可され、アイテムが移動しdropedされた場合、次のエラーがスローされる: 'TypeError例外:sourceModel.spliceはfunction'ありません。 ところで、問題に対処する方法の二つのアプローチがあります: - これまでのところ、我々はこれを行う方法がわからない 1が完全に起きてからドラッグ&ドロップを防ぐためです。 2番目のアプローチでは、ドラッグ&ドロップが可能ですが、結果は保存されません。つまり、 'if(enableDragNDrop)this.dragulaService.dropModel.subscribe(this.myCustomOnDropCallback.bind(this))' – Peter

    +0

    私は深くダイビングするつもりはありません私は現在、自分でdragulaを使うつもりはないので、このトピックに入れてください。私はちょうどAngularの視点から助けようとしました。 Angularについて言及することなく、特にDragulaについて質問して、より良い結果を得るかもしれません。 –

    関連する問題