【发布时间】:2018-05-28 02:44:23
【问题描述】:
我在通过 js 进行部分渲染时收到 Uncaught SyntaxError: Unexpected token < 错误。部分只包含一个表格。
正在调用部分,但浏览器控制台中的错误消息将 table 标记的第一个 < 显示为意外令牌。
<table class='table table-sm'> # <- this line errors
<thead>
<tr>
<th>Part #</th>
<th>Description</th>
<th>Qty</th>
</tr>
</thead>
<tbody>
<tr>
<td>SCS-#10-24X.375-BLK</td>
<td>Countersunk screw, #10-24 X .375, Black oxide</td>
<td>2.0</td>
</tr>
</tbody>
</table>
_check_it.html.haml
- if @part.part_structures == 0
No components
- else
%table.table.table-sm
%thead
%tr
%th Part #
%th Description
%th Qty
%tbody
- @part.part_structures.each do |ps|
%tr
%td= ps.component.partNo
%td= ps.component.description
%td= ps.qty
check_it.js.erb
$("#that_one").replace("<%= j render(partial: 'check_it') %>");
parts_controller.rb
def check_it
respond_to do |format|
format.js {render partial: 'check_it', :content_type => 'text/html', part: @part}
end
end
为什么会在 JS 控制台中出现 table 标签开头的部分错误?
【问题讨论】:
-
似乎是您在parts_controller 中的
{render.... }块是问题所在,这是什么操作?是check_it? -
是的。我在那里更新了代码
-
因为您的
check_it.js.erb已经进行了部分交换,所以您不需要{render...}并且它不正确,因为format.js这意味着rails 正在发回一个js 响应,而不是html。 -
看起来糟糕的 {render...} 完全阻止了 js.erb 被调用。我剥离了 format.js {} 并且它正在工作。谢谢
标签: ruby-on-rails ajax ruby-on-rails-5