CoffeeScript eco - 在事件上运行代码

时间:2013-07-17 22:29:51

标签: event-handling coffeescript eco

我在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")) %>

虽然我找不到如何应用相同的方法,但是为了在事件被触发时执行第一个片段。我尝试在代码片段顶部添加一个函数签名,然后内联它,以及其他一些方法,但没有一个工作。可以找到完整的索引文件here,虽然我猜这不相关。欢迎提出任何意见。

此代码的作用是根据现有图形填充界面。虽然图片仅在页面加载完成后几秒钟才可用,所以我希望在确保模型可用后执行此代码。

更新

我添加了一个函数定义,虽然我不确定它是否正确。 &#39;三角函数&#39;虽然视图没有改变,但会在事件上打印。

<% @fetchModels= -> : %>
  <% console.log("trig") %>
  <% for drawing, index in @drawings: %>
  . . .
<% end %>
<% Spine.Model.bind('Model:fileLoad',@fetchModels) %>

1 个答案:

答案 0 :(得分:0)

必须在Controller中渲染index.eco文件才能进行更改。从那里我必须绑定到一个事件,当该事件被触发时,调用@render函数。