我有一个容器td
元素,我使用HTML部分成功填充其他元素,这是在页面加载时完成的。
部分运行在任务对象上,它作为参数获取,并决定要添加哪些元素。
完成特定操作后,任务对象会更新,我想通过再次运行部分来更新容器。
我使用更新的任务从我的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>
这里还有另一个问题 - 在第一个容器td下面添加了两个添加的类别tds。如何将它们添加到它而不是之后呢?
现在这里是再次调用partial的create.js.haml
:
$('td.#{dom_id(@task)}_categories').html(#{escape_javascript(render(:partial => 'tasks/task_categories_mini_bar', :locals => {:task => @task}))})
同样,响应HTML会显示新的HTML,但页面不会更新。
我正在使用rails 3.0.10感谢分配,Eyal。
答案 0 :(得分:0)
好的,我错过的是“”在我的ajax create.js.haml的部分调用中
$('td.#{dom_id(@task)}_categories').html("#{escape_javascript(render(:partial => 'tasks/task_categories_mini_bar', :locals => {:task => @task}))}")
多数人。