У меня есть представление ejs, которое содержит форму, которую мне нужно заполнить данными, чтобы можно было редактировать основную запись. Я передал объект, содержащий данные, представлению и теперь вижу два способа заполнения формы, и мне нужна помощь в определении того, какой из них лучше.
Вариант 1 - "серверная" совокупность
Я могу поместить значения формы непосредственно в такие элементы:
<input type="text" id="txtFirstName" name="txtFirstName" value="<%= person.firstName%>" />
<input type="text" id="txtLastName" name="txtLastName" value="<%= person.lastName%>" />
...
etc
Вариант 2 - "клиентская" совокупность
Кроме того, я могу вернуть весь объект клиенту, а затем использовать javascript для заполнения полей формы следующим образом:
<script>
var data = "<%=JSON.stringify(person)%>".replace(/"/gi, '"');
var p = eval('(' + data + ')');
populateForm(p);
function populateForm (person) {
$("#txtFirstName").val( person.firstName );
$("#txtLastName").val( person.lastName );
....
etc
}
</script>
Преимущество варианта 2 заключается в том, что функцию можно легко использовать повторно для повторного заполнения формы, если новые данные загружаются через ajax. Это также устраняет необходимость в экранировании данных, поскольку все это уже в объекте js, тогда как вариант 1 потребует некоторого типа кодирования html и экранирования кавычек. Вариант 1, с другой стороны, работает без JS.
Существует ли стандартный, наилучший практический способ сделать это (и является ли это одним из этих вариантов)?