У меня есть элемент контейнера td
, который я успешно заполняю другими элементами с использованием частичного HTML, это происходит при загрузке страницы.
Часть выполняет над объектом task , который он получает в качестве параметра, и решает, какие элементы добавить.
После выполнения определенного действия объект task обновляется, и я хочу обновить контейнер, снова запустив партиал.
Я вызываю эту часть из моего create.js.haml
с обновленной задачей , эта часть запускает и создает правильный обновленный HTML (я вижу это в ответе Firebug).
Но текущая страница не обновляется . Что мне здесь не хватает?
Вот мои файлы:
html.haml
, который содержит контейнер td
:
%td#task-categories{ :class => "#{dom_id(task)}_categories"}
= render 'task_categories_mini_bar', :task => task
Частичное html.haml
:
- _MAX_DISPLAYED_CAT = 3
- cat_index = 0
- task.categories.each do |category|
- if (cat_index == _MAX_DISPLAYED_CAT)
%td{:style => "padding-left:1px; padding-right:5px"} ...
- break
- cat_index += 1
%td{ :class => "task-category-color_#{dom_id(category)}",
:style => "width:60px; background:#{category.color}; border:solid 1pt lightblue; border-radius:3pt; text-align:center; "}
= truncate(category.name, :length => 10)
вместе они создают этот HTML-код:
<td id="task-categories" class="task_3_categories"> </td>
<td class="task-category-color_category_1" style="width:60px; background:#b8d7ff; border:solid 1pt lightblue; border-radius:3pt; text-align:center; "> cat1 </td>
<td class="task-category-color_category_2" style="width:60px; background:#ff8fcb; border:solid 1pt lightblue; border-radius:3pt; text-align:center; "> cat2 </td>
Здесь есть еще одна проблема - две добавленные категории tds добавляются ниже первой емкости td. Как я могу добавить их к нему, а не после него?
Теперь вот create.js.haml
, который снова вызывает частичное:
$('td.#{dom_id(@task)}_categories').html(#{escape_javascript(render(:partial => 'tasks/task_categories_mini_bar', :locals => {:task => @task}))})
Опять же, HTML-код ответа отображает новый HTML-код, но страница не обновляется.
Я использую рельсы 3.0.10 Спасибо, Eyal.