2017-01-12 7 views
0

私は要素のドラッグアンドドロップを可能にするdirectiveを持っています。私がドラッグしている間、私はドラッグされた要素といくつかのクラスをドラッグしている要素を与えています。今、私は角度リスト2のクラスリスト "ok"に追加/削除していますか?

onDragStart(event: DragEvent) { 
    event.dataTransfer.setData("text/plain", this.article.id.toString()); 
    this.el.classList.add(this.draggedItemClass); 
} 

このような

this.el何かをやっている私は、ドラッグしていますネイティブの要素です。私。 JavaScriptを使用して私のComponentからCSSクラスを作成しています。一部のライブラリでも同様のコードが見つかりましたが、間違ったことをしているように感じ、JavaScriptでCSSクラスを作成するのではなく、テンプレートでこれを行う必要があります。だから私の質問は、追加/クラス2からの "ok"を削除するか、何らかの方法で(おそらく私のデータを基にして)テンプレートを経由する必要がありますか?

答えて

1

ディレクティブから、いつでも@HostAttributeバインディングを使用できます。それは確かにベストプラクティスです。 例: @HostBinding('class.someClass') someField: boolean = false; ようonDragStartで、あなただけのこれは、クリーンかつ最高のsoulutionあるsomeField = true

を行います。

P.S.あなたのソリューションはAngularが良い要素にアクセスできるようにして、ドキュメントから手動で選択するのではないので、それほど悪くはありませんが、とにかく、上記の解決策は良い方法です

+0

ありがとう、ありがとう! – Lukas

関連する問題