2013-07-17 2 views
0

У меня есть следующий код внутри index.ecoCoffeeScript эко - запустить код на событие

<% 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, хотя, я думаю, это не имеет значения. Любые комментарии приветствуются.

Что делает этот код, это заполнить интерфейс на основе существующих чертежей. Хотя чертежи становятся доступными только через несколько секунд после того, как страница закончила загрузку, поэтому я хочу выполнить этот код, как только я удостоверюсь, что модели доступны.

Update

Я добавил определение функции, хотя я не уверен, если его правильно. 'trig' печатается на событии, хотя представление не изменяется.

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

ответ

0

Изменения должны были быть выполнены в контроллере, отображающем файл index.eco. Оттуда мне пришлось привязываться к событию, и когда это событие запускается, вызовите функцию @render.

Смежные вопросы