У меня есть вход, который преобразует строки в «стилизованные теги», когда пользователь вводит запятую, затем, когда форма отправляется, строки помещаются в массив с именем «content».
НаПредставления EJS, я печатаю результат как <%= course.content %>
, но результат, который я получаю, равен 'string1,string2,string3,string4'
, и я получаю после этого то, что при вставке в массив каждая строка должна быть отдельным элементом:
content ['string1','string2','string3','string4']
только тогда он будет правильно отображаться в моих представлениях, зацикливая массив.Я хочу достичь этого только с помощью javaScript или jQuery.
ОБНОВЛЕНИЕ: так я рендеринг в моем представлении
<ul>
<% var i; for (i = 0; i < course.content.length; i++) { %>
<li><i class="fas fa-check"></i> <%= course.content %></li>
<% }; %>
</ul>
ОБНОВЛЕНИЕ:это мой маршрут, где выполняется этот запрос POST
router.post("/", middleware.isLoggedIn, function(req, res) {
Course.create(req.body.course, function(err, course) {
if (err) {
req.flash("error", err.message);
return res.redirect("back");
}
res.redirect("/courses/" + course.id);
});
});
РЕШЕНО!используя split на стороне сервера следующим образом:
router.post("/", middleware.isLoggedIn, function(req, res) {
Course.create(req.body.course, function(err, course) {
if (err) {
req.flash("error", err.message);
return res.redirect("back");
} else {
var content = req.body.course.content.toString().split(",");
course.content = content;
course.save();
console.log(course.content);
res.redirect("/courses/" + course.id);
}
});
});
Вот еще одно решение в javaScript, использующее функцию beforesubmit () от @garry man , см. ниже.
codepen