У меня есть приложение, работающее в Node.js с Express, и я хотел динамически изменять параметры для выбранного объекта с помощью jquery. На самом деле это не большая проблема, но у меня возникают проблемы с использованием параметров res.render (которые являются документами мангуста) в теге скрипта. Я использую их без каких-либо проблем в html (на самом деле нефрит), но в теге скрипта у меня возникает проблема с тем, что ObjectId не является строкой.
Это фрагмент кода: В серверной части:
router.get("/new", function(req, res){
res.render("session/documentos/new",
{
services: res.locals.services
});
});
В представлении
block content
div
h1(class="text-center") New document
form(id="newDoc" action="/session/documentos" method="POST")
div(class="tab") Service:
div(class="form-group")
select(class="form-control" name="svc" id="svc")
option(value="undefined" disabled selected) Choose one
for service in services
option(value=service._id)=service.name
script.
$(document).ready(function() {
var sessLenght = 0;
var selectedSvc = #{services};
$("#svc").change(function(){
console.log("Service changed: " + selectedSvc);
});
});
И это ошибка, которую я получаю: Ошибка консоли
И в источниках: Ошибка источника в ObjectId
Таким образом, я могу без проблем использовать коллекцию документов «services», но при попытке использовать их в теге script у меня возникают проблемы с элементом ObjectId.
Я думал, что одним из решений будет преобразование ObjectId в строку при запросе к базе данных, но я думаю, что для этого может быть более чистое решение. Какой может быть лучший способ решить проблему?
Любые мысли оценены! заранее спасибо
selectedSvc
в первую очередь? Значение опции равно_id
, этого достаточно, чтобы найти службу, когда форма отправляется обратно для экспресс-доставки. В чем смысл вашего сценария? - person Chris G   schedule 08.11.2018