0
我有以下代碼是_form.html.erb代碼的一部分。基本上我有一個表單,其中我有一個observe_field函數,在更改時,它將設置字段的值而不刷新頁面。以下是我的html代碼:這裏更好的方式來做HTML更新,然後揭露rails3中的JavaScript
<script type="text/javascript">
// When DOM loads, init the page.
$(function() {
// Executes a callback detecting changes with a frequency of 1 second
$("#id_element_placeholder").observe_field(1, function() {
$.ajax({
type: "GET",
dataType: "json",
url: "/students/get/" + this.value,
success: function(data){
$('#last_name').attr('value', data.student.last_name);
$('#building').attr('value', data.student.building);
$('#room').attr('value', data.student.room);
}
});
});
});
</script>
問題是我要揭露很多我的代碼在JavaScript。有沒有更好的方式來做到這一點,而無需在JavaScript中暴露代碼?
這裏是我的控制器看起來像:
def get
@student = Student.find(params[:id])
respond_to do |format|
format.html
format.json { render :json => @student }
end
end
基本上我的形式獲得一個ID,並從那裏我一定要得到相應的對象,並更新頁面上的字段。
這將有助於什麼?通過電線發送html的唯一一件事就是你的界面更加緩慢。 –
他說他想避免「在JavaScript中暴露代碼」。返回一個HTML片段將會這樣做。否則,他必須返回某種數據結構並在客戶端解析它。當然,這需要權衡 - 在這種情況下,更爲嚴格的界面以及線路上數據的微小增長。 – bluescrubbie