LaravelとVue.jsを使用して複数の列を含み、それらの列内に複数のチケットを含む対話型スクランブルボードを作成したいと考えています。Vue.jsレンダリングされたコンポーネントで関数を呼び出す
これらのチケットはvueコンポーネントであり、開発者の編集/削除/(un)割り当て機能があり、他のページでも使用されます。
私はこのように定義された複数の列があります。
<div id="scrumboard">
<div class="scrumboard__column">
<div class="scrumboard__title">Open</div>
<div class="scrumboard__tickets_wrapper" data-status="open">
@if($sprint->hasTicketsOfStatus("open"))
@foreach($sprint->getTicketsByStatus("open") as $ticket)
<ticket :data="{{ $ticket->getJsonData(true) }}"></ticket>
@endforeach
@endif
</div>
</div>
<div class="scrumboard__column">
<div class="scrumboard__title">In progress</div>
<div class="scrumboard__tickets_wrapper" data-status="progress">
@if($sprint->hasTicketsOfStatus("progress"))
@foreach($sprint->getTicketsByStatus("progress") as $ticket)
<ticket :data="{{ $ticket->getJsonData(true) }}"></ticket>
@endforeach
@endif
</div>
</div>
<div class="scrumboard__column">
<div class="scrumboard__title">Finished</div>
<div class="scrumboard__tickets_wrapper" data-status="closed">
@if($sprint->hasTicketsOfStatus("closed"))
@foreach($sprint->getTicketsByStatus("closed") as $ticket)
<ticket :data="{{ $ticket->getJsonData(true) }}"></ticket>
@endforeach
@endif
</div>
</div>
</div>
そして、あなたはそれが列ごとに検出した各チケットのチケットコンポーネントを描画見ることができるように。
いいえ、scrumboard__tickets_wrapper divをjquery uiソート可能なリストに変更していないので、列間でチケットを入れ替えることができます。
<script>
$(document).ready(function(){
$(".scrumboard__tickets_wrapper").sortable({
connectWith: '.scrumboard__tickets_wrapper',
receive: function(event, ui){
console.log("Switched columns");
console.log(event);
console.log(ui);
var target = $(event.target);
target.css("background-color", "#ff0000");
}
});
</script>
すべてがこれまでに取り組んでいる、今、私の質問は:チケットは別のリスト内に落下されると、どのように私は動的にチケットコンポーネントの「UpdateStatusを()」関数を呼び出していますか?
ご覧のとおり、特定の要素が削除され、ソート可能なリストがドロップされてしまいます。だから私は新しい状態がラッパーのデータステータスプロパティをつかむことによって+どの要素が削除されたか知っていることを知っています。
しかし、問題のチケットコンポーネントのインスタンスを取得し、updateStatus関数を呼び出して新しいステータスを保存するにはどうすればよいですか?
ありがとうございます!
主なテクニックは、 'this。$ el'を使ってコンポーネント内から' .sortable'を適用することです。次に、 '.sortable'呼び出しの外側で' var self = this; 'を使ってコンポーネントへの参照を取得し、呼び出しの中で' self'を使うことができます。そこから 'ui'の情報を使ってどのコンポーネントの' updateStatus() 'を呼び出すか、DOMと一致するように内部配列を適切に再編成する方法を決定することができます。 –