使用 Pass Mongodb 通过脚本中的 res.render('jadeview', mail:mongodbretriveddata) 通过 express检索数据。标签在翡翠视图中?



我通过routes.js 中的以下代码将mongose检索到的数据传递到我的节点/快递应用程序中的jade视图

app.get('/newrequest', function (req, res) {
Account.find({}, function (err, data) {
if (err) {}
res.render('newrequest', {
user: req.user,
mail: data
});
});
});

现在我想从邮件对象中提取每个值,并通过JavaScript将其存储在一个数组中的脚本标记中,该邮件对象被传递到我的jade视图中,代码如下,我使用的是Jquery UI自动完成函数,其源是下面一个名为availabletags的数组,我正在尝试的是获取mail对象中的值,并将这些值输入到availabletags数组中,我尝试了对邮件#{item.email}中的每个项目使用-,我想要mongodb模式的电子邮件文档值,但我无法将值获取到可用标签数组中,有人能帮我吗?我不知道我们是否可以在Jade中的脚本标签中直接使用#{mail['0']['email']},目前我收到以下错误

Express
500 TypeError: C:UserschakravarthyDocumentsappworkviewsnewrequest.jade:13 
11| $(function() { 
12| var availableTags = [ 
> 13| #{item.email} 
14| ]; 
15| $( "#tags" ).autocomplete({ 
16| source: availableTags Cannot read property 'email' of undefined

下面是我的翡翠视图代码

!!! 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中获得输入标记的自动完成值。用翡翠代码在这里贴标签?

我们可以通过将来自routes.js的JSON字符串数据传递到我们的Jade视图来获得节点中脚本标记中可用标签数组的值,如下所示

app.get('/newrequest', function (req, res) {
Account.find({}, function (err, data) {
if (err) {}
res.render('newrequest', {
user: req.user,
mail: JSON.stringify(data)
});
});
});

在Jade视图中的脚本标记中,我们可以使用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
});
});

最新更新