У меня есть этот файл для добавления нового корабля и сценарий для заполнения выпадающего меню de fleet отлично работает:
файл new.ejs:
<% include ../partials/header %>
<div class="container">
<div class="row">
<h1 style="text-align: center;">Create a new Ship</h1>
<div style="width: 30%; margin: 25px auto;">
<form action="/ships" method="POST">
<div class="form-group">
<input class="form-control" type="text" name="name" placeholder="name">
</div>
<div class="form-group">
<input class="form-control" type="number" name="tons" placeholder="tons" min="0" step="1">
</div>
<div class="form-group">
<input class="form-control" type="text" name="image" placeholder="img url">
</div>
<!--<div class="form-group">-->
<!-- <input class="form-control" type="text" name="fleet" placeholder="fleet">-->
<!--</div>-->
<div class="form-group">
<select class="form-control" type="text" name="fleet" id="selectNumber" placeholder="fleet">
<option>Choose a fleet</option>
</select>
</div>
<script>
var select = document.getElementById("selectNumber");
var options = ["First fleet", "Second fleet", "Metropolitan fleet", "Support fleet"];
for(var i = 0; i < options.length; i++) {
var opt = options[i];
var el = document.createElement("option");
el.textContent = opt;
el.value = opt;
select.appendChild(el);
}
</script>
<div class="form-group">
<input class="form-control" type="text" name="description" placeholder="description">
</div>
<div class="form-group">
<button class="btn btn-lg btn-primary btn-block">Submit!</button>
</div>
</form>
<a href="/ships/">Back</a>
</div>
</div>
</div>
<% include ../partials/footer %>
Я хочу отделить «логику» от представления, поэтому мне нужно создать файл: .. / public / js / jsscripts.js
, и я предполагаю, что внутри jsscripts.js
module.exports = {
PopulateFleet: function () {
var select = document.getElementById("selectNumber");
var options = ["First fleet", "Second fleet", "Metropolitan fleet", "Support fleet"];
for(var i = 0; i < options.length; i++) {
var opt = options[i];
var el = document.createElement("option");
el.textContent = opt;
el.value = opt;
select.appendChild(el);
}
};
1) Нужно ли мне запрашивать файл "jsscripts" из моего app.js? Что-то вроде:
jscripts= require ("./public/js/jscripts");
2)Как вызвать функцию «PopulateFleet» из файла new.ejs? что-то вроде ??
<% PopulateFleet %>
или
<% jscripts.PopulateFleet %>
Структура папки
Fleet - public - js -> jsscripts.js
Fleet - просмотры - корабли -> - new.ejs