我有一个很好的紧密阵列,如果我只能在完成组装后将它传递给部分,它会很好地渲染成玉部分。(我已经通过预加载确认了它)
我现在遇到的问题并且在任何地方都找不到答案是,当我运行我的应用程序时,我无法使用或显示数组,直到它自己完成组装/加载......(它被填充了抓取的数据) - 所以我'正在使用 async 来运行构建数组的函数。效果很好。- 然后我在整个构建完成后调用一个函数 done() 我确认它确实构建了 - 现在我只想将数组传递给我的部分但似乎我不能这样做除非使用 Ajax + JSON :( 我试图避免这种情况,因为部分已经内置了可靠的迭代。
- 有没有人知道在应用程序已经运行(不使用套接字)后填充部分的简单方法?
//in my main app, web.js
//assume I have all the dependencies loaded
//setup an empty array
var items = new Array();
// then run 'fetch' which populates array with scraped data, takes about 10 seconds
app.get('/', function(req, res){
fetch(p.u[0]); //builds the array, returns items[]
res.render('index.jade', {
title: 'my first node.js app',
item: 'items' //what the partial needs, this throws an error if I don't
})
});
//have to use this to avoid initial error due to array being empty/undefined when app
//first starts
var params = {
"namespace": {
"items": [
"an unnecessary value"
]
}
};
//and finally this is what's called once the array is finished assembling itself
function displayItems(){
app.get('/', function(req, res){
req.render('items.jade', {item : 'items'})
})
}
//index.jade
//setup my partial
//script is there to avoid initial error due to array being empty/undefined when app
//first starts
div.list
script
if(namespace.items) {
if(namespace.items.length) {
!= partial('item', items)
}
}
//and my partial, _items.jade
//express docs confirm that jade would iterate over each item in the items array
//with this jade markup
ul.list
li.date #{item.date}
li.descrip #{item.descrip}
li.reas #{item.reas}
li.cmpny #{item.cmpny}
li.photo #{item.photo}