我通过 routes.js 中的以下代码将 mongoose 检索到的数据传递到我的 node/express 应用程序中的 jade View
app.get('/newrequest', function (req, res) {
Account.find({}, function (err, data) {
if (err) {}
res.render('newrequest', {
user: req.user,
mail: data
});
});
});
现在我想提取每个值并通过 JavaScript 将邮件对象存储在脚本标记中的数组中,该邮件对象传递到我的 jade View ,代码如下,我正在使用 Jquery UI 自动完成功能源是下面名为 availabletags 的数组, 我正在尝试的是获取邮件对象中的值并将这些值输入到 availabletags 数组, 我尝试了 - 对于邮件中的每个项目 #{item.email} ,我想要 mongodb 模式的电子邮件文档值,但我无法将值获取到 availbletags 数组,任何人都可以帮我解决这个问题,我不知道我们是否可以在 Jade 的脚本标签中直接使用#{mail['0']['email']},目前我遇到以下错误
Express
500 TypeError: C:\Users\chakravarthy\Documents\app\work\views\newrequest.jade:13
11| $(function() {
12| var availableTags = [
> 13| #{item.email}
14| ];
15| $( "#tags" ).autocomplete({
16| source: availableTags Cannot read property 'email' of undefined
下面是我的 Jade View 代码
!!! 5
html
head
title= title
meta(name='viewport', content='width=device-width, initial-scale=1.0')
link(href='/css/bootstrap.min.css', rel='stylesheet', media='screen')
script(src='js/jquery.js')
script(src='js/jquery-ui.js')
script(src='js/bootstrap.min.js')
script.
$(function() {
var availableTags = [
- if(mail.length)
each item in mail
#{item.email}
];
$( "#tags" ).autocomplete({
source: availableTags
});
});
body
h1 New Requests Page
.container
form(role='form', action="/requestcomplete",method="post", style='max-width: 300px;')
.form-group
input.form-control(type='text', name="requesttype", placeholder='Enter type of Request')
.form-group
textarea.form-control(type='text', name="requestdescription", placeholder='Enter Request Description')
div.ui-widget
label(for="tags") Tags:
input#tags
br
br
button.btn.btn-default(type='submit') Submit
a(href='/requests')
button.btn.btn-primary(type="button") Cancel
我怎样才能在 Jquery 或脚本中的 JavaScript 中获取输入标签的自动完成值。在 Jade 代码中标记这里?
最佳答案
我们可以通过将 routes.js 中的 JSON Stringfied 数据传递给我们的 Jade View 来获取 Node 脚本标签中 availabletags 数组的值,如下所示
app.get('/newrequest', function (req, res) {
Account.find({}, function (err, data) {
if (err) {}
res.render('newrequest', {
user: req.user,
mail: JSON.stringify(data)
});
});
});
在 Jade View 的脚本标签中,我们可以使用 JSON 字符串数据,即传递给 Jade 的邮件变量,如下所示
script.
$(function() {
var availableTags = !{mail};
var data = [];
for(var i=0;i<availableTags.length;i++){
data.push(availableTags[i]['email'])
}
console.log(data);
$( "#tags" ).autocomplete({
source: data
});
});
关于javascript - 使用 Passed Mongodb 通过 res.render ('jadeview' 快速检索数据,在 Jade View 中邮寄 :mongodbretriveddata) in script. 标签?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21752445/