#javascript #html #vue.js
#javascript #HTML #vue.js
Вопрос:
Я vue.js новичок, поэтому мне нужна помощь. Я пишу HTML-страницу, на которой отображается список объектов в простой таблице. Таблица создается скриптом, который получает объект JSON из сервлета и отображает его с помощью директивы v-for. В каждой строке таблицы есть кнопка, которую пользователь может нажать, чтобы записать объект, записанный в соответствующую строку, используя форму. Проблема в том, что я не знаю, как получить информацию об объекте, соответствующую выбранной строке, чтобы поместить ее в поля формы.
Это код:
<!DOCTYPE html>
<html lang="en">
<head>
<title>Repetition - catalog</title>
<meta charset="UTF-8" name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="style2.css" />
</head>
<body>
<header><h1>REPETITIONS.com</h1></header>
<div id="app" class="float-container" style="height: 80%">
<table class="catalog-table">
<thead>
<tr>
<th style="width: 200px">Corso</th>
<th style="width: 250px">Docente</th>
<th></th>
</tr>
</thead>
<tbody>
<tr v-for="rep in reps">
<td>{{rep.teacherName}} {{rep.teacherSurName}}</td>
<td>{{rep.course}}</td>
<td>
<form action="/Repetition/controller/ServletController" method="post" id="i">
<input type="hidden" name="operation" value="booking">
<input type="hidden" name="id_t" value="rep.getId_teac"> <---set the value of the current row
<input type="hidden" name="id_c" value="rep.getId_cor"> <---set the value of the current row
<button type="submit">Book</button>
</form>
</td>
</tr>
</tbody>
</table>
</div>
<footer>xxxxxxx</footer>
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
<script>
var app = new Vue ({
el: '#app',
data: {
repetitions: [],
link: '/Repetition/ServletController?operation=catalogamp;device=x'
},
mounted(){
this.getRepetitions()
},
methods:{
getRepetitions: function(){
var self = this;
$.get(this.link, function(data) {
self.repetitions = data;
});
}
}
});
</script>
</body>
</html>
В качестве альтернативы запросом формы можно управлять с помощью другого скрипта, но возникнет та же проблема.
Комментарии:
1. Вы должны добавить информацию о том, как структурированы данные в вашем ‘rep’. Является ли он вложенным (
rep.course.id
), плоским (rep.courseId
) или у вас есть какие-то другие средства для получения нужных идентификаторов (что быgetId_teac
ни предполагалось делать)? Может быть, это так же просто, как использоватьv-bind:value
вместоvalue
, но я не могу знать наверняка.2. Да, извините, это плоско , как
rep.courseId