index.eco 内に次のコードがあります
<% for drawing, index in @drawings: %>
<li class="span4 well">
<div style="margin-bottom: 10px;">
<h3 style="margin-top: 0;"><%=drawing.name%></h3>
</div>
<div>
<a href="#/drawings/<%=drawing.id%>">
<img src="<%=drawing.cache%>" style="background-color: white; border: 1px solid #ddd">
</a>
</div>
<div style="margin-top: 10px; text-align: right;">
<button class="btn btn-danger delete" data-id="<%=drawing.id%>" style="display:inline;">Delete</button>
</div>
</li>
<% if (index + 2) % 3 is 0: %>
このコードは正常に動作していますが、イベントがトリガーされるたびに実行したいと考えています。これを使用してイベントをリッスンする方法を見つけました:
<% Spine.Model.bind('Model:fileLoad',(map) => console.log("triggered")) %>
イベントが発生したときに最初のスニペットを実行するために、同じメソッドを適用する方法がわかりません。スニペットの上に関数シグネチャを追加してからインライン化してみましたが、他のアプローチもいくつかありましたが、どれも機能していません。完全なインデックス ファイルはここにありますが、関係ないと思います。どんなコメントでも大歓迎です。
このコードが行うことは、既存の図面に基づいてインターフェイスを設定することです。図面はページの読み込みが完了してから数秒しか使用できないため、モデルが使用可能であることを確認したら、このコードを実行したいと考えています。
アップデート
関数定義を追加しましたが、それが正しいかどうかはわかりません。ビューは変更されませんが、「trig」はイベントに出力されます。
<% @fetchModels= -> : %>
<% console.log("trig") %>
<% for drawing, index in @drawings: %>
. . .
<% end %>
<% Spine.Model.bind('Model:fileLoad',@fetchModels) %>