[英]Ruby on Rails escape_javascript usage with jQuery
我一直在看這個Railscast ,特別是這些代碼行。
// views/reviews/create.js.erb
$("#new_review").before('<div id="flash_notice"><%= escape_javascript(flash.delete(:notice)) %></div>');
$("#reviews_count").html("<%= pluralize(@review.product.reviews.count, 'Review') %>");
$("#reviews").append("<%= escape_javascript(render(:partial => @review)) %>");
$("#new_review")[0].reset();
有人可以解釋為什么使用了escape_javascript來渲染部分內容和顯示Flash通知,而不是使用復數功能嗎?
謝謝
復數形式只有幾個可能的輸出(@ review.product.reviews.count,'Review')
0 Reviews
1 Review
n Reviews
不需要輸出任何輸出,因此作者選擇不這樣做。
轉義javascript會將<div id="yo">You're Awesome</div>
更改為文本,該文本不會導致javascript解釋器認為引號結尾處的字符串變量。
如果您輸入
var awesome = "<div id="yo">You're Awesome</div>";
它會炸毀。 引號需要“轉義”為
<div id=\"yo\">You\'re Awesome<\/div>
您正在將原始JavaScript響應發送回瀏覽器,這是jQuery.ajax({type:“ script”})命令所期望的。
為了用來自AJAX響應的HTML替換頁面中的HTML,需要對其進行轉義,以便可以將其作為javascript發送; 因此使用了escape_javascript。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.